我是编程的新手,我仍然想弄清楚一切工作原理,但是我想写一个字符串,以后在添加字符,分割文本,大写/小写等时应使用。现在,我被困在字符串的读取部分上,这就是我到目前为止所掌握的:
int A, str[100];
printf("Write the text you want to use:\n");
char A;
scanf("%c", &A);
当我运行程序时,它只是跳过了这一部分,是因为我只是写了char A而不是str?
答案 0 :(得分:1)
有几处错误。首先,您要声明两次A,具有两种不同的类型-您应该在那里声明一个错误,因为您只能声明一次变量。
第二,您确实应该将字符串存储在str [100]中,因为它是一个数组(可以存储多个变量,每个元素中存储一个变量,因此可以存储100个变量)。您还应该使用char
数组,而不要使用int
。 A
在您的情况下也没有用,因为您会将字符串存储在str
中。
最好对字符串使用fgets
,因为它更安全。另外,scanf
将在字符串的第一个空格之后停止读取,在大多数情况下不是您想要的。
这应该有效,我还添加了解释:
printf("Write the text you want to use:\n");
char str[100];
fgets(str,100,stdin); // 100 is the number of characters to store, stdin indicates that you are reading from the standard input, what the user is typing
printf("String: %s",str); // just for verification
答案 1 :(得分:0)
首先,您首先将变量“ A”声明为整数,然后声明为字符数据类型,这将在编译期间产生冲突。可以通过对两个变量使用不同的变量名来纠正。
之后,可以回答您的问题-
例如:
printf("Enter the input text:\n");
char string[50];
fgets(str,100,stdin); // the max length of string that can be taken is depicted by 50.
printf("Input was: %s",string); // check your string variable contents, mind the %s used to mark string variables in C