我的代码有点问题,为什么当我在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;
}
答案 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;
}
希望这能解决您的问题