我使用此代码,但它无效。
#include <stdio.h>
#include <string.h>
int main() {
char c, *strx = 0;
c = getchar();
while(c != '\n') {
strx = strcat(strx, &c);
c = getchar();
}
printf("%s\n", *strx);
return 0;
}
如何将单词放入字符串?
答案 0 :(得分:1)
更改
char *strx = 0
到
char strx [256];
例如:
#include <stdio.h>
#include <string.h>
int main()
{
char c, strx[256] = "";
int i = 0;
c = getchar();
while (c != '\n') {
strx[i++] = c;
c = getchar();
}
printf("%s\n", strx);
return 0;
}
答案 1 :(得分:1)
你需要为strx分配空间(这里是堆栈,你也可以是malloc)
#include <stdio.h>
#include <string.h>
int main()
{
char c, strx[100] = "";
int i = 0;
c = getchar();
while (c != '\n') {
strx[i++] = c;
if (i == 99)
break;
c = getchar();
}
strx[i] = '\0';
printf("%s\n", strx);
return 0;
}
strcat不起作用,因为它最终需要一个null char,但它可能会在char之后找到垃圾。
更简单地说,您可以使用scanf:
#include <stdio.h>
#include <string.h>
int main()
{
char strx[100] = "";
scanf("%99s", strx);
printf("%s\n", strx);
return 0;
}