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字符串文字.
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)