使用getchar输入字符串

时间:2014-05-12 21:03:14

标签: c printf getchar

我的代码有点问题,为什么当我在string1(最后一行)上使用printf时,它不会给我我为这个变量写的内容?

例如,如果我写道:asdfgh,string1给我一些奇怪的东西:@>> ..

有什么想法吗?

感谢您的帮助。

 int main()
{
    int length;
    int i = 0;
    char string1[100];
    printf("Please enter the length of the two strings\n");
    scanf("%d", &length);

    printf("\nPlease enter the first string\n");
    while((string1[i] = getchar())!='\n')
        i++ ;
    getchar();
    printf("\nString 1 : %c", string1);

    return 0;
}

2 个答案:

答案 0 :(得分:1)

你遇到的问题很少:

1)应使用%s打印字符串 2)使用NULL终止符终止字符串(在此之前它不是字符串;)
3)使用main()的标准原型,例如:int main(void)

答案 1 :(得分:0)

 #include <stdio.h>
 int main(void)
 {
    int length;
    int i = 0;
    int ch;
    char string1[100];
    printf("Please enter the length of the two strings\n");
    scanf("%d", &length);
    getchar();
    printf("\nPlease enter the first string\n");
    /* use null for termination of string */
    /* Press Ctrl+d to end your input */
    while((ch = getchar()) != EOF){
            string1[i++] = ch;

    }
    string1[i] = '\0';
    /* USE %s to print whole string */
    printf("\nString 1 : %s\n", string1);

    return 0;
  }

希望这能解决您的问题