如何读取字符串

时间:2018-12-11 13:52:40

标签: c string char

我是编程的新手,我仍然想弄清楚一切工作原理,但是我想写一个字符串,以后在添加字符,分割文本,大写/小写等时应使用。现在,我被困在字符串的读取部分上,这就是我到目前为止所掌握的:

int A, str[100];    
printf("Write the text you want to use:\n");
char A;
scanf("%c", &A);

当我运行程序时,它只是跳过了这一部分,是因为我只是写了char A而不是str?

2 个答案:

答案 0 :(得分:1)

有几处错误。首先,您要声明两次A,具有两种不同的类型-您应该在那里声明一个错误,因为您只能声明一次变量。

第二,您确实应该将字符串存储在str [100]中,因为它是一个数组(可以存储多个变量,每个元素中存储一个变量,因此可以存储100个变量)。您还应该使用char数组,而不要使用intA在您的情况下也没有用,因为您会将字符串存储在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”声明为整数,然后声明为字符数据类型,这将在编译期间产生冲突。可以通过对两个变量使用不同的变量名来纠正。

之后,可以回答您的问题-

  1. 字符串在C中存储为数组的字符数组,而不仅仅是单个char。因此,您应该声明所需的变量以从用户那里获取字符串作为variable_name char [100],然后在fgets中使用它。

例如:

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
  1. 您可以使用C的string library,它具有许多高级功能,并且具有简单易用的语法。浏览该链接,您会发现它比其他任何东西都要简单