-1

我使用此代码,但它不起作用。

#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;
}

如何将单词放入字符串中?

4

2 回答 2

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;
}
于 2013-06-12T23:25:03.357 回答
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 不起作用,因为它希望最后有一个空字符,但它可能会在字符之后找到垃圾。

更简单地说,您可以使用 scanf:

#include <stdio.h>
#include <string.h>

int main()
{
    char strx[100] = "";
    scanf("%99s", strx);
    printf("%s\n", strx);
    return 0;
}
于 2013-06-12T23:25:07.300 回答