为字符赋值

hkv*_*ega 6 c

char *tempMonth;

char month[4];
month[0]='j';
month[1]='a';
month[2]='n';
month[3]='\0';
Run Code Online (Sandbox Code Playgroud)

如何为tempMonth分配月份?谢谢

以及如何打印出来?

谢谢

the*_*olf 11

在C中,month == &month[0](在大多数情况下)这些等于一个char *或字符指针.

所以你可以这样做:

tempMonth=month;
Run Code Online (Sandbox Code Playgroud)

这将指向未分配的指针tempMonth指向在帖子的其他5行中分配的文字字节.

要创建字符串文字,执行此操作也更简单:

char month[]="jan"; 
Run Code Online (Sandbox Code Playgroud)

或者(虽然你不允许修改这个中的字符):

char *month="jan";
Run Code Online (Sandbox Code Playgroud)

编译器将month[]使用正确的NULL终止C字符串自动分配右侧文字的长度,并month指向文字.

要打印它:

printf("That string by golly is: %s\n", tempMonth); 
Run Code Online (Sandbox Code Playgroud)

您可能希望查看C字符串和C字符串文字.


Fre*_*tor 1

tempmonth = malloc (strlen (month) + 1); // allocate space
strcpy (tempMonth, month);               //copy array of chars
Run Code Online (Sandbox Code Playgroud)

记得:

include <string.h>
Run Code Online (Sandbox Code Playgroud)