例如
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char substr[10][20];
int main() {
substr[0] = "abc";
printf("%d", substr[0]);
}
当然上面是错的?怎么做?感谢
答案 0 :(得分:4)
您不能在C中分配类似的字符串。相反,请使用strcpy(substr[0], "abc")
。另外,在%s
%d
而不是printf
答案 1 :(得分:3)
我讨厌给作业问题提供“完整”答案,但回答问题的唯一方法就是向你展示问题的答案,因为它是如此基本:
#include <stdio.h>
#include <string.h>
#define MAXLEN 20
char substr[10][MAXLEN];
int main(void) {
strncpy(substr[0], "abc", MAXLEN);
puts(substr[0]);
return 0;
}
您的代码(按原样)有几个错误:
substr[0]
视为字符串文字。你不能这样做。%s
用于字符串printf()
打印字符串strncpy()
main()
不需要/ argc
和argv
,则其参数应为void
main()
应返回一个值,因为其返回类型为int
<stdlib.h>
以外的任何内容,为什么要包括它?我建议研究字符串文字,<string.h>
中可用的函数以及格式说明符。
另请注意,我 没有检查strncpy() 的返回,这是您应该做的事情。这留给读者练习。
答案 2 :(得分:0)
希望这会有所帮助:
void main(void)
{
char* string[10];
string[0] = "Hello";
}
否则我认为您需要手动复制或使用strcpy等将其从一个内存块移动到另一个内存块。