c语言把不定长数组转为字符串
时间: 2023-08-02 18:39:33 浏览: 102
将不定长数组转换为字符串可以使用sprintf函数。sprintf函数是C语言中格式化输出的函数,其原型为:
```c
int sprintf(char *str, const char *format, ...)
```
其中,第一个参数是指向字符数组的指针,用于存储输出的字符串;第二个参数是格式字符串,用于指定输出格式;后面的参数是可变参数,用于提供输出的值。
下面是一个将不定长数组转换为字符串的示例代码:
```c
#include <stdio.h>
int main()
{
int arr[] = {1, 2, 3, 4, 5};
char str[50];
int i;
// 将数组转换为字符串
sprintf(str, "%d", arr[0]);
for(i = 1; i < sizeof(arr)/sizeof(int); i++)
{
sprintf(str, "%s, %d", str, arr[i]);
}
printf("Array: {%s}\n", str);
return 0;
}
```
输出结果为:
```
Array: {1, 2, 3, 4, 5}
```
在上面的代码中,首先定义了一个整型数组arr和一个字符数组str,然后使用sprintf函数将数组中的每个元素转换为字符串,并将其拼接成一个字符串,最后输出结果。
相关问题
c语言怎么把字符数组变成字符串
在 C 语言中,字符数组和字符串本质上是相同的,都是由一系列字符组成的序列。因此,将字符数组转换为字符串非常简单,只需要在字符数组的末尾添加一个 null 字符('\0')即可。
下面是一个例子:
```c
#include <stdio.h>
int main() {
char arr[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 字符数组
char *str = arr; // 字符指针指向字符数组
printf("字符数组: %s\n", arr);
printf("字符串: %s\n", str);
return 0;
}
```
输出:
```
字符数组: Hello
字符串: Hello
```
在这个例子中,我们首先定义了一个包含 6 个元素的字符数组 `arr`,并且在数组的末尾添加了一个 null 字符,使其成为一个字符串。然后,我们定义了一个指向该字符数组的字符指针 `str`,并将其输出为字符串。
c语言单个字符串数组查找字符串
可以使用strcmp函数来对单个字符串数组进行查找。
例如,假设我们有一个字符串数组str_array,包含了多个字符串,我们想要查找其中的某个字符串target_str,可以使用以下代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str_array[10][20] = {"hello", "world", "foo", "bar", "apple", "banana", "cat", "dog", "sun", "moon"};
char target_str[20] = "banana";
int i, found = 0;
for (i = 0; i < 10; i++) {
if (strcmp(str_array[i], target_str) == 0) {
found = 1;
break;
}
}
if (found) {
printf("The target string \"%s\" is found at index %d.\n", target_str, i);
} else {
printf("The target string \"%s\" is not found in the array.\n", target_str);
}
return 0;
}
```
以上代码中,我们使用了一个双重循环来遍历字符串数组中的每个字符串,并使用strcmp函数逐个比较字符串,查找目标字符串。如果找到了目标字符串,我们设置found标记为1,并使用break语句跳出循环。最后,我们根据found标记的值输出查找结果。