用c语言阅读段落

时间:2015-03-04 09:11:19

标签: c

#include<Stdio.h>
#include<conio.h>
void main()
{
    char a[100];
    clrscr();
    printf("enter a paragraph\n");
    scanf("%s",a);
    printf("%s",a);
    getch();
}

输出: 输入一个段落 我叫vasanth 我

如何使用scanf函数读取整行“我的名字是vasanth”?

4 个答案:

答案 0 :(得分:5)

使用scanf功能:

scanf("%99[^\n]", a);

其中%[^\n]是一个字符集说明符,允许除换行符之外的所有字符,%99[^\n]将匹配限制为最多99个字符(因为a有多个字符的空间加上null终止符)。

或者,您可以使用

fgets(a, 100, stdin);

这可以说是更常见的,但要注意它最后会保留换行符。

答案 1 :(得分:1)

这个问题已被多次询问,答案是

使用

fgets(a,sizeof(a),stdin);
size_t n = strlen(a);
if(n>0 && a[n-1] == '\n')
a[n-1] = '\0';

如果您只想使用scanf(),则需要执行

scanf("%99[^\n]",a);

其中[^ \ n]告诉read直到遇到换行符,99确保没有缓冲区溢出。与fgets()

相比,仍然scanf()是阅读字符串的不错选择

答案 2 :(得分:0)

您可以使用 fgets ,如下所示

fgets (a, 100, stdin);

答案 3 :(得分:-1)

您可以使用fgets( )功能阅读一行文字。

fgets(str , 100 , stdin);

如果你的字符串很小,你也可以使用gets()函数,因为这个函数没有缓冲区溢出保护。

gets(str)

U也可以使用scanf执行此操作,正如其他人所提到的那样。