c语言中如何输入输出字符串

用puts(),get()

第1个回答  推荐于2018-02-24
puts()和gets()都是数组函数,输入或输出前要定义数组
例如:
char a[50];
gets(a);
puts(a);
就是一个简单的输入后再将输入的东西输出,puts()的输入和printf的输出是有一定的区别的,puts()遇到‘\0'就终止,而用printf则不会这样。
例如:
char a[50];
gets(a);
puts(a);
printf("%s",a);
如果正好输入50个字符,则两次输出一致。但如果输入字符不足50个,puts()输出输入的全部字符,而没有输入的不输出,而printf则不能识别'\0',所以会出现乱码。本回答被提问者和网友采纳
第2个回答  2007-12-26
puts()和gets()函数
1. puts()函数
puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为:
puts(s);
其中s为字符串变量(字符串数组名或字符串指针)。
puts()函数的作用与语printf("%s\n", s)相同。
例4:
main()
{
char s[20], *f; /*定义字符串数组和指针变量*/
strcpy(s, "Hello! Turbo C2.0"); /*字符串数组变量赋值*/
f="Thank you"; /*字符串指针变量赋值*/
puts(s);
puts(f);
}

说明:
(1). puts()函数只能输出字符串, 不能输出数值或进行格式变换。
(2). 可以将字符串直接写入puts()函数中。如:
puts("Hello, Turbo C2.0");

2. gets()函数
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符
不属于这个字符串。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s)
函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,
空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符
串直到回车为止。
例5
main()
{
char s[20], *f;
printf("What's your name?\n");
gets(s); /*等待输入字符串直到回车结束*/
puts(s); /*将输入的字符串输出*/
puts("How old are you?");
gets(f);
puts(f);
}

参考资料:

第3个回答  2017-03-22
C语言中字符串的输入和输出主要有两种方式:
输入使用:scanf("%s",a);对应的输出使用:printf("%s\n",a);
输入使用:gets(b);对应的输出使用:puts(b);
参考代码:
第4个回答  2019-03-01
//小白写程序
//输入一行字符串,分别统计出其中英文字符、空格、数字、和其他字符

#include <stdio.h>

int main()
{
    char *p = "abc ABC 123 !@# ";            //字符串用char类型
    int a = 0, b = 0, c = 0, d = 0; 
    //a为大小写字母,b为空格,c为数字,d为其他字符并赋初值0;    
    while(*p != '\0')                        //判断是否循环结束
    {
        if((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'))
        // 判断字母
            a++;
        //统计字母个数
        else if(*p == ' ')
        //判断是否为空格
            b++;
         //统计空格个数
        else if(*p >= '0' && *p <= '9')
        //判断是否为数字
            c++:d
        //统计数字个数
        else
        //其他特殊字符
            d++;
        //统计特殊字符个数
        *p++;            //判断字符串的下一个是什么
    }
    printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网