我期待修改一个具有不同字符串的char数组,例如一个带有各种字符串的临时字符数组 . 假设一个char数组A [10] =“alice”,如何指定A [10] =“12” . 不使用字符串函数?
TIA
好吧,因为字符串数组注意到但是指向数组的指针你可以像这样分配
int main(void) { char *name[] = { "Illegal month", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; name[10] = "newstring"; printf("%s",name[10]); return 0; }
在C中,字符串只是一个 char 类型的数组,其中包含可打印字符,后跟一个终止空字符( '\0' ) .
char
'\0'
有了这些知识,您可以避开标准函数 strcpy 和 strcat 并手动分配字符串:
strcpy
strcat
A[0] = '1'; A[1] = '2'; A[2] = '\0';
如果字符串 A 中的字符超出索引 2 ,则它们无关紧要,因为字符串处理函数在 A[2] 遇到空终止符后将停止读取字符串 .
A
2
A[2]
这就像Govind Parmar的答案,但是有了循环 .
#include <stdio.h> #include <stdlib.h> int main() { char str[11] = "hello world"; char new[5] = "2018"; int i = 0; for (i; new[i] != '\0'; i++) str[i] = new[i]; str[i] = '\0'; printf("str => '%s' ",str); return 0; }
输出:
str => '2018'
3 回答
好吧,因为字符串数组注意到但是指向数组的指针你可以像这样分配
在C中,字符串只是一个
char
类型的数组,其中包含可打印字符,后跟一个终止空字符('\0'
) .有了这些知识,您可以避开标准函数
strcpy
和strcat
并手动分配字符串:如果字符串
A
中的字符超出索引2
,则它们无关紧要,因为字符串处理函数在A[2]
遇到空终止符后将停止读取字符串 .这就像Govind Parmar的答案,但是有了循环 .
输出: