精华内容
下载资源
问答
  • C语言字符串的输入输出 问题1.输出 puts():直接输出字符串,并且只能输出字符串。 printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。 在 printf() 函数中使用%s输出字符串...

    C语言字符串的输入输出

    问题1.输出

    • puts():直接输出字符串,并且只能输出字符串
    • printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。
    • 在 printf() 函数中使用%s输出字符串时,在变量列表中给出数组名即可,不能写为printf("%s", str[])

    问题2.输入

    • scanf():通过格式控制符 %s 输入字符串。除了字符串,scanf() 还能输入其他类型的数据。
    • gets():直接输入字符串,并且只能输入字符串

    1. 使用 scanf() 读取字符串

    scanf() 读取到空格时就认为字符串输入结束了,不会继续读取了。
    例如:通过scanf读取输出后的结果
    Input str2: Java Python C-Sharp↙
    str2: Java
    再通过一个例子展示scanf和缓冲之间的一个关系

    #include <stdio.h>
    int main(){
        char str1[20], str2[20], str3[20];
        printf("Input string: ");
        scanf("%s", str1);
        scanf("%s", str2);
        scanf("%s", str3);
        printf("str1: %s\nstr2: %s\nstr3: %s\n", str1, str2, str3);
        return 0;
    }
    

    运行结果:
    Input string: Java Python C-Sharp↙
    str1: Java
    str2: Python
    str3: C-Sharp

    • 第一个 scanf() 读取到 “Java” 后遇到空格,结束读取,将"Python C-Sharp" 留在缓冲区。第二个 scanf()直接从缓冲区中读取,不会等待用户输入,读取到 “Python” 后遇到空格,结束读取,将 “C-Sharp” 留在缓冲区。第三个 scanf() 读取缓冲区中剩下的内容。

    • scanf 的各个变量前面要加取地址符&,用以获得变量的地址,将字符串读入字符数组却没有使用&;数组名表示数组的首地址。

    2. 使用 gets() 读取字符串

    • gets() 函数不会把空格作为输入结束的标志,而只把回车换行作为输入结束的标志,这与 scanf() 函数是不同的。

    • gets() 函数不会把空格作为输入结束的标志,而只把回车换行作为输入结束的标志,这与 scanf() 函数是不同的。

    总结:

    如果希望读取的字符串中不包含空格,那么使用 scanf() 函数;如果希望获取整行字符串,那么使用 gets() 函数,它能避免空格的截断。

    展开全文
  • 1、字符指针变量与字符数组 char *cp; 与 char str[20];...而cp中存放字符串首地址 char str[20]; str=“I love China!”; () char *cp; cp=“I love China!”; () str是地址常量;cp是地址变量 c...

    用多个字节来代表的字符称之为宽字符,而Unicode只是宽字符编码的一种实现,宽字符并不一定是Unicode


    编译时为字符数组分配若干存储单元,以存放各元素的值,而对字符指针变量,只分配一个存储单元存储地址

     char *a; scanf(“%s”,a);   错
     char *a,str[10];      
     a=str;                  
     scanf (“%s”,a);      对
    

    gets(s)函数与scanf("%s:",&s)/* scanf("%s",s) */相似,但不完全相同,


    使用scanf("%s",&s); 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止


    puts()函数的作用与语句“printf("%s\n",s);的作用相同。


    1、字符指针变量与字符数组
    char *cp; 与 char str[20];

    str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址

       char  str[20];     str=“I love China!”;    ()
       char   *cp;         cp=“I love China!”;    ()
    

    str是地址常量;cp是地址变量
    cp接受键入字符串时,必须先开辟存储空间

    2、初始化字符数组

    char  str[100]={ 0 } ;   //初始化字符数组
    scanf(“ %s ”,str);  //根据键盘输入初始化
    printf( “%s”, str);  //打印字符串
    

    3、 初始化字符指针

    char  *p=NULL ;   //0x00000,用指针初始化,必须让指针存储一片可以读写的内存 (这样的初始化是错误的)
     scanf(“ %s ”,p);  //根据键盘输入初始化
    printf( “%s”, p);  //打印字符串
    

    4、 str[100]代表第101个元素,下面的初始化就会越界

    在这里插入图片描述
    如果int str[100];
    str=”tasklist”; //编译出错。str是数组名,是常量不可以修改。

    5、 字符串的处理函数atoi——把字符串转换成长整型数
    char *p=”tasklist”; //p存储了字符串常量的首地址
    字符串处理函数atoi
    函数名:atoi
    功能:将字符串转换成整形数
    程序例:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • C语言字符串的输入输出处理

    千次阅读 多人点赞 2020-06-09 00:58:00
    题目 1094: 字符串的输入输出处理 时间限制: 1Sec 内存限制: 64MB 提交: 13472 解决: 4902 题目描述 字符串的输入输出处理。 输入 第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串...

    写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

    题目:

    题目链接:https://www.dotcpp.com/oj/problem1094.html

    题目 1094: 字符串的输入输出处理

    时间限制: 1Sec 内存限制: 64MB 提交: 13472 解决: 4902

    题目描述
    字符串的输入输出处理。
    输入
    第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。
    输出
    先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。
    样例输入
    2
    www.dotcpp.com DOTCPP
    A C M
    D O T CPP
    样例输出
    www.dotcpp.com DOTCPP

    A C M

    D

    O

    T

    CPP

    C语言解法

    #include <stdio.h>
    int main()
    {
       int n = 0;
       scanf("%d", &n);
       char ch, a[100];
       getchar();//getchar()接受读取整数后缓冲区的回车
       for (int i = 1; i <= n; i++)
       {
          while ((ch = getchar()) != '\n')
             printf("%c", ch);
          printf("\n\n");//注意这里!!格式问题
       }
       while (~scanf("%s", a))
          printf("%s\n\n", a);
       return 0;
    }
    

    都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
    有事没事进来看看吧 : 小王的博客目录索引
    C语言专栏看这 : C语言学习专栏


    如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

    展开全文
  • **首先,c语言字符串都是用字符数组形式来存储,并且在使用操作过程中不以数组形式出现(常常是数组名作为首地址单枪匹马) 创建固态存储空间: char zifu[MAX]; //创建完成 创建动态存储空间:(不建议) char *...

    **

    C语言 字符串的输入输出 学习笔记

    零,创建存储空间

    **首先,c语言中字符串都是用字符数组的形式来存储,并且在使用操作过程中不以数组形式出现(常常是数组名作为首地址单枪匹马)
    创建固态存储空间:

    char zifu[MAX];       //创建完成 

    创建动态存储空间:(不建议)

    char *zifu;
    scanf("%s", zifu);

    弊端:zifu是内存空间中随机找的一个地方,进行字符串赋值操作会覆盖此处数据和代码,并可能导致程序异常终止。
    但是如果不进行任何更改操作,那么这样创建一个动态数组完全可以。

    一,输入

    1.scanf():适合输入单词类型

    针对输入串的空格:串前空格跳过,串中空白字符(换行符,空格符,制表符)为自动结束 [且不读取该空白字符](字符串的最后有“/0”)
    关于读取格式:scanf("%s/%10s",zifu);ps:%10s为指定了字段宽度,表示读取10个字符。另外,没有赋值符号!
    关于scanf()函数:scanf()的返回值是已经成功赋值的变量个数(0/1/2…)或者如果遇到错误或遇到end of file,返回值为EOF.

    分隔符问题:主要是针对“%c”:默认没有任何分隔字符(包括all空白字符)***解决方法:***(1) 清空缓冲区——有一个名为fflush(stdin)的函数,可以用来清空缓冲区。
    while(scanf("%c%c",&a,&b)!=EOF)  
        {  
            printf("a=%c,b=%c\n",a,b);  
            fflush(stdin);  
            printf("Input the value of a and b:");  
        }  

    即:在空白字符被误读之前将缓冲区暂时清空。

    (2)将缓冲区的致错数据读出来(间接清理缓冲区)——getchar() or gets()

    对于getchar():读取缓冲区的第一个字符(EOF),该函数的返回值为该字符(EOF==-1)(若返回给整型变量则是它对应的ASCII码)扩展兄弟函数putchar():putchar(ch/int)——此函数输出在终端以参数ch/int(ASCII码)对应的char值

    2.gets{get string}():读取一行东西

    判断遇到的第一个换行符(\n)结束输入,并且用一个空字符(\0)替换该换行符。
    gets()的缺陷:不会检查数组能否放得下输入行所以经常会出现warning报错
    该函数的使用:gets(name):将读取的一行字符串赋值到name数组中。该函数return字符串的首地址。(str=gets(name)——str也指向name字符串数组)

    char name[MAX];    
    char *ptr; //指向char的指针     
    printf("Please input your name.\n");    
    ptr = gets(name); //使用一个地址吧字符串赋值给name   
                      //gets()函数使用return关键字返回字符串的地址    
    printf("name, %s\n", name);    
    printf("ptr, %s\n", ptr);

    如何结束行字符串的反复读取:如果在gets()函数在读取字符串时出错或者遇到文件结尾(EOF),它就返回一个空(或0)地址,这个空地址被称为空指针,并且stdio.h里面定义的常量NULL来表示,可以用下面的代码来进行一些错误检测。

    while(get(name) != NULL)

    3.fgets():读取字符串通过两种方式结束:换行符OR字符数量达上限

    比前两个 多一个性能,不仅是读取标准输入方式(键盘)
    会读取入最后的换行符

    fgets(name, MAX, stdin);

    PS:fgets()也会像gets()一样在读取的字符串末尾加上一个空字符
    第三个参数来说明读哪一个文件!从键盘上读取数据时,可以使用stdin(代表standard input)作为参数,这个标识符在stdio.h中定义。

    二,输出

    1.printf():输出字符串

    printf("%s",name);

    2.puts{put string}():只需要字符串参数的首地址(即数组名)

    遇到字符串末尾的/0结束输出,并且自动加上一个换行符。

    3.fputs():面对文件版本

    fputs(line,stdout);

    与puts()函数不同,fputs()函数并不为输出自动添加换行符
    ps:puts()&fputs()分别与gets()&fgets()相对应{换行符的自动添加是相反的}

    展开全文
  • 字符串的输出C语言中,输出字符串的函数有两个:puts():直接输出字符串,并且只能输出字符串。printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。这两个函数前面已经讲过了...
  • 字符串的输出C语言中,输出字符串的函数有两个:puts():直接输出字符串,并且只能输出字符串。printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。这两个函数前面已经讲过了...
  • 项目3-黑客攻击系统-输入的优化(2)-60.C语言字符串的输入输出 项目3-黑客攻击系统-输入的优化(2)-61.计算机英语加油站3: string:字符串 length:长度 scanf:C语言的标准输入函数 parameter:参数 return value:...
  • C语言字符串输入输出的几种方式

    万次阅读 多人点赞 2018-02-06 00:12:56
    1.字符串数组+初始化 char s1[]="array"; //字符数组 char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘ printf("%s,%c\n",s1,s2[2]); //array,r 2.字符串指针+初始化 char *sp=...
  • C语言字符串的输入输出,很是方便需要的可以下载。
  • 字符串的输出C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:puts():输出字符串并自动换行,该函数只能输出字符串。printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,...
  • C语言中没有字符串类型,而是用字符...法一 :用scanf输入字符串,printf输出字符串 char ch[5]; for (int i = 0; i < 5; i++) { scanf("%c", &ch[i]); } for (int i = 0; i < 5; i++) { prin...
  • C语言字符串输入输出

    万次阅读 多人点赞 2018-01-26 21:30:39
    C语言中,输出字符串的函数有两个: puts():直接输出字符串,并且只能输出字符串。printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。 这两个函数前面已经讲过了,...
  • C语言字符串输入输出函数

    千次阅读 2020-03-21 18:36:15
    C语言字符串输入输出函数 (1)putchar()函数 格式: putchar© 功能:向终端输出一个字符 注意:输出时候不会加回车 (2) getchar()函数 格式:字符型变量=getchar () 功能:从标准输入设备上读取单个字符,返回值...
  • 一、字符串的输出C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是: puts():输出字符串并自动换行,该函数只能输出字符串。 printf():通过格式控制符%s输出字符串,不能自动换行。除了...
  • ———————————————— 版权声明:本文为CSDN博主「爆爆爆炸beng」原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。...1.字符串数组+初始化 char s1[]="array"...
  • 二维字符数组,用于同时存储和处理多个字符串一 :用scanf输入字符串,printf输出字符串 输入输出方法:逐个字符输入输出:%c 整个字符串输入输出:%s 逐个字符处理:#include<stdio.h> int main...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,531
精华内容 2,212
关键字:

c语言字符串的输入输出

c语言 订阅