-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 に答える