已知一个字符串数组,求字符串数组中每一个字符的长度,存储到一个新的数组中
时间: 2024-09-30 07:16:30 浏览: 12
当你有一个字符串数组,你可以通过遍历这个数组,对每个字符串调用`length()`函数来获取其字符数,然后将这些长度值存入一个新的数组中。下面是一个简单的示例,假设我们使用的是JavaScript:
```javascript
function getLengthsOfStrings(strArray) {
var lengthsArray = [];
for (var i = 0; i < strArray.length; i++) {
lengthsArray.push(strArray[i].length);
}
return lengthsArray;
}
// 示例用法
var stringArray = ["hello", "world", "example"];
var lengths = getLengthsOfStrings(stringArray); // 这将返回 [5, 5, 7]
```
在这个例子中,`getLengthsOfStrings`函数接受一个字符串数组作为输入,创建了一个新的空数组`lengthsArray`,然后迭代原始数组中的每个字符串,并将其长度添加到新数组中。
相关问题
C语言中 如何在一个数组中存储多个字符串
在C语言中,你可以使用字符数组(char array)或动态内存分配的`malloc`函数来存储多个字符串。以下是两种常见的方法:
1. **静态数组存储** (对于固定长度且已知的字符串数量)
```c
#include <stdio.h>
#define MAX_STRINGS 3 // 定义最大字符串数量
char strings[MAX_STRINGS][50]; // 每个字符串最多49个字符加上结束符'\0'
void store_strings(char* string[], int num_strings) {
for(int i = 0; i < num_strings; i++) {
strcpy(strings[i], string[i]); // 将字符串复制到数组对应位置
}
}
// 使用示例
int main() {
char str[] = {"Hello", "World", "C Programming"};
store_strings(str, MAX_STRINGS);
// ...后续处理字符串数组...
}
```
2. **动态内存存储** (适用于未知或变化的字符串数量)
```c
#include <stdio.h>
#include <stdlib.h> // 包含 malloc 和 free 函数
void store_strings(char** strings, int num_strings) {
for(int i = 0; i < num_strings; i++) {
strings[i] = (char*)malloc(strlen(strings[i]) + 1); // 动态分配空间并复制字符串
strcpy(strings[i], strings[i]);
}
}
// 使用示例
int main() {
char* str1 = "Hello";
char* str2 = "World";
char* str3 = "C Programming";
store_strings(&str1, 1);
store_strings(&str2, 1);
store_strings(&str3, 1);
// ...后续处理字符串数组...
// 别忘了释放内存,防止内存泄漏
for(int i = 0; i < num_strings; i++) {
free(strings[i]);
}
}
```
c语言怎样将多个字符串初始化一个char *字符数组
在C语言中,你可以通过动态内存分配或者预定义固定大小的数组来初始化一个包含多个字符串的`char *`字符数组。这里我们提供两种常见的方法:
1. **静态数组(适用于已知字符串长度和数量)**:
```c
#define MAX_STRINGS 3
char *strings[MAX_STRINGS] = {
"Hello", // 字符串1
"World", // 字符串2
"C Programming" // 字符串3
};
```
在这个例子中,数组`strings`最多可以存储3个字符串。
2. **动态分配(适用于未知或变动的字符串数量)**:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc和free函数
int main() {
int num_strings = 5;
char **strings = (char **)malloc(num_strings * sizeof(char *));
for (int i = 0; i < num_strings; i++) {
strings[i] = malloc(sizeof(char) * (strlen("String ")+i+1)); // 动态分配每个字符串的空间
sprintf(strings[i], "String %d", i); // 初始化字符串内容
}
// 使用完后记得释放内存
for (int i = 0; i < num_strings; i++) {
free(strings[i]);
}
free(strings);
return 0;
}
```
在这个示例中,程序会根据`num_strings`动态分配内存并初始化相应数量的字符串。