精华内容
下载资源
问答
  • 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=...

    1.字符串数组+初始化

    char s1[]="array";  //字符数组
    char s2[6]="array";  //数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘
    printf("%s,%c\n",s1,s2[2]);  //array,r

    2.字符串指针+初始化

    char *sp="pointer";  //字符指针
    printf("%s,%c,%c\n",sp,*sp,*(sp+2));  //pointer,p,i
    3.数组+scanf

    char s1[6];	
    scanf("%s\n",s1);
    printf("%s,%c\n",s1,s1[2]);  //array,r
    4.指针+scanf
    #include <stdio.h>
    #include<stdlib.h>   //该头文件别忘加,否则使用malloc会报错
    int main(){
      char *sp;
      sp=(char *)malloc(sizeof(char));
      scanf("%s\n",sp);
      printf("%s,%c\n",sp,*sp);//pointer,p
      return 0;
    }
    5.指针+数组+scanf

    char str[60], *sp=str;//将数组的首地址str赋给指针变量sp
    scanf("%s\n",sp);
    printf("%s,%c,%c\n",sp,*sp,*(sp+3));//pointer,p,n
    printf("%s,%c,%c\n",str,str[0],str[3]);//pointer,p,n
    6.注意:如下方法控制台运行会终止

    char *sp;//sp未初始化指向不明
    scanf("%s\n",sp);
    printf("%s\n",sp);
    7.用scanf和gets( 字符数组名或指针)进行输入的区别:

    char str1[60],str2[60];
    gets(str1);  //gets()函数将接收输入的整个字符串直到遇到换行为止
    printf("%s\n",str1);
    scanf("%s\n",str2);//scanf如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理
    printf("%s\n",str2);

    8.使用while(scanf("%d",&n)!=EOF){ }实现多组测试数据输入,而不在输入完一组数据后退出控制台

    char s1[60],s2[60];
    int cnt; //用来测试scanf返回被输入函数成功赋值的变量个数
    while((cnt=scanf("%s%s",s1,s2))!=EOF){  //当按下ctr+z终止输入时,scanf会返回EOF(-1)\n
       printf("scanf返回了%d, s1是%s,s2是%s, 这行输出下方可以继续进行输入\n",cnt,s1,s2);
       //scanf若成功输入str1和str2则返回2
    }
    printf("%d",cnt);//当按下ctr+z后会执行该条输出-1
























    展开全文
  • C语言字符串输入输出函数

    万次阅读 多人点赞 2015-01-15 14:57:49
    字符串输入&输出

    字符串输入

    如果想把一个字符串读取到程序中,必须首先预留存储字符串的空间,然后使用输入函数来获取这个字符串,C库提供了三个读取字符串的函数:scanf()、gets()和fgets()。

    创建存储空间

    可以通过数组(char name[10])来分配存储空间,也可以通过C语言动态内存分配函数来动态分配存储空间。

    char *name;
    scanf("%s", name);
    如果通过上面的代码来创建存储空间,可能会通过编译器,但是在读入name的时候,name会覆盖程序中的数据和代码,并可能导致程序异常终止。这个是 因为scanf()把信息复制到由name指定的地址中,而在这种情况下,参数是个 未被初始化的指针,name可能指向任何地方。

    gets()函数

    gets()(get string)函数对于交互式程序非常方便,它从系统的标准输入设备(通常是键盘)获得一个字符串。因为字符串没有预定的长度,所以gets()函数通过判断遇到的第一个换行符(\n)结束输入,按回车键可以产生这个字符。它读取换行符之前(不包括换行符)的所有字符,并在这些字符后添加一个空字符(\0)

    [clef@rhel6164 c]$ cat test1.c
    #include<stdio.h>
    #define MAX 81
    
    int main(void)
    {
        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);
    
        return 0;
    }
    编译&运行:

    [clef@rhel6164 c]$ gcc test1.c
    /tmp/ccDJ9AHw.o: In function `main':
    //因为gets()函数不检查存储区是否能够容纳实际输入的数据,可以用后面的fgets()函数替换gets()函数
    test1.c:(.text+0x1a): warning: the `gets' function is dangerous and should not be used. 
    [clef@rhel6164 c]$ ./a.outPlease input your name.clefname, clef 
    //这里ptr和name的内容是一样的ptr, clef
    
    如果在gets()函数在读取字符串时 出错或者遇到文件结尾,它就返回一个空(或0)地址,这个空地址被称为 空指针,并且stdio.h里面定义的常量 NULL来表示,可以用下面的代码来进行一些错误检测。
    while(get(name) != NULL)
    也可以通过 getchar函数来完成上面的错误检测。

    while((ch = getchar()) != EOF)
    注意:空指针和空字符是不一样的,不要混淆。空指针是一个地址,而空字符是一个char类型的数据对象其值为0,数字上都可以用0表示,但是概念不同:NULL是一个指针,而0是一个char类型的常量。

    fgets()函数

    因为gets()函数不会检查存储区是否能够容纳实际输入的数据,多出来的字符简单地溢出到相邻的内存区,所以上面的代码在编译的时候会有warning。fgets()函数和gets()函数的不同:

    • 它需要第二个参数来说明最大读入字符数。如果这个参数值为n,fgets()就会读取最多n-1个字符或者读完一个换行符为止(因为会自动添加一个空字符(\n)),由这两者中最先满足的那个结束输入
    • 如果fgets()读取到换行符,就会把它存到字符串里,而不是像gets()那样丢弃。
    • 它还需要第三个参数来说明读哪一个文件,从键盘上读取数据时,可以使用stdin(代表standard input)作为参数,这个标识符在stdio.h中定义。

    [clef@rhel6164 c]$ cat test1.c
    #include<stdio.h>
    #define MAX 81
    
    int main(void)
    {
        char name[MAX];
        char *ptr;
    
        printf("Please input your name.\n");
        ptr = fgets(name, MAX, stdin);
    
        printf("name, %s\n", name);
        printf("ptr, %s\n", ptr);
    
        return 0;
    }
    编译&运行:

    [clef@rhel6164 c]$ gcc test1.c //这里就没有warning出现
    [clef@rhel6164 c]$ ./a.out
    Please input your name.
    clef
    name, clef
    //注意这里的换行符,因为fgets()函数没有丢弃输入的换行符
    ptr, clef
    
    [clef@rhel6164 c]$

    scanf()函数

    scanf()函数可以使用%s格式来读入一个字符串,scanf()函数和gets()函数的主要区别在于如何决定字符串何时结束。scanf()函数更基于获得单词(get word)而不是获取字符串(get string)。scanf()函数有两种方法决定输入结束,无论哪一种都是遇到的第一个非空白字符开始

    1. 如果使用%s格式,字符串读取到(但不包括)下一个空白字符(比如空格、制表符或换行符)
    2. 如果指定了字段宽度,比如%10s,scanf()函数就会读取10个字符或者直到遇到第一个空白字符,由二者最先满足的那一个终止输入

    字符串输出

    C语言有三个输出字符串的标准库函数:puts()、fputs()和printf()

    puts()函数

    puts()函数使用很简单,只需要给出字符串参数的地址,它遇到空字符(\0)就会结束输出(所以必须要有空字符)。puts()函数在显示字符串的时候,会自动在其后添加一个换行符(\n)。

    [clef@rhel6164 c]$ cat test1.c
    #include<stdio.h>
    #define DEF "I am a #defined string."
    
    int main(void)
    {
        char str1[80] = "An array was initialized to me.";
        const char * str2 = "A pointer was initialized to me.";
    
        puts("I'm an argument to puts()."); //直接用字符串做参数
        puts(DEF); //用宏定义做参数
        puts(str1);
        puts(str2);
        puts(&(str1[5])); //必须用括号strl1[5],因为str1将会首先结合&,然后在[5]结合,将出错
        puts(str2+4);
    
        return 0;
    }
    
    编译&执行:

    [clef@rhel6164 c]$ gcc ./test1.c
    [clef@rhel6164 c]$ ./a.out
    I'm an argument to puts().
    I am a #defined string.
    An array was initialized to me.
    A pointer was initialized to me.
    ray was initialized to me.
    inter was initialized to me.

    fputs()函数

    fputs()函数puts()函数面向文件版本,两者主要的区别是:

    • fputs()函数需要第二个参数来说明要写的文件,可以使用stdout(standard output)作为参数来进行输出显示。
    • 与puts()函数不同,fputs()函数并不为输出自动添加换行符。

    读取一行并把它回显在下一行,用下面的两种循环都可以办到

    char line[81];
    while(gets(line)) //遇到文件结尾,gets()函数就会返回空指针,循环结束
        puts(line);
    char line[81];
    while(fgets(line,81,stdin))
        fputs(line,stdout);

    printf()函数

    如同puts()函数一样,printf()函数在输出字符串的时候同样需要一个字符串地址作为参数,但是printf()函数没有puts()函数方便,但是它可以格式化多种数据类型,输出的时候也不自动添加换行符。

    展开全文
  • python 字符串输入和输出

    千次阅读 2020-04-30 11:07:18
    python 字符串输入和输出 1、字符串输入 python中提供了input()函数可以用于接收字符串输入,默认的标准输入是键盘,并且会将输入内容转化为字符串类型,如需将其转化为整型等数据类型,可以使用数据类型转化...

    python 字符串的输入和输出

    1、字符串的输入

    python中提供了input()函数可以用于接收字符串的输入,默认的标准输入是键盘,并且会将输入内容转化为字符串类型,如需将其转化为整型等数据类型,可以使用数据类型转化函数。除此之外,可以使用变量对用户输入的信息进行保存,代码如下:

    # 字符串的输入
    a = input("请输入您的姓名")
    print(a)
    print(type(a))
    
    age = int(input("请输入您的年龄")) #转为整型
    print(age)
    print(type(age))
    

    2、字符串的输出

    字符串的输出可以使用print()函数:

    # 字符串的输出
    print("我是Neal")
    

    上面的字符串只能够输入特定的内容,如果事先不知道要输出的内容,而是需要根据用户输入信息来确定,可以采用如下两种方法:

    # 方法一
    name = input("请输入您的姓名")
    print("您的姓名是:%s" %name)
    
    # 方法二
    name = input("请输入您的姓名")
    print(f"您的姓名是:{name}")
    

    显然第二种方法更为简洁明了,并且在第一种方法中需要根据不同的类型变量而改变%后面的字母,下表是不同字母代表的含义:
    在这里插入图片描述

    展开全文
  • 在C语言中怎样定义一个字符串输入输出

    万次阅读 多人点赞 2018-02-28 16:57:29
    在C语言中没有字符串类型,用字符数组处理字符串 ...输入输出方法:逐个字符输入输出:%c 整个字符串输入输出:%s 一 :用scanf输入字符串,printf输出字符串  逐个字符处理: #include int main()

    在C语言中没有字符串类型,用字符数组处理字符串

    字符数组定义:char 数组名 [常量表达式][常量表达式]

    说明:一维字符数组,用于存储和处理一个字符串 。二维字符数组,用于同时存储和处理多个字符串

    输入输出方法:逐个字符输入输出:%c    整个字符串输入输出:%s

    一  :用scanf输入字符串,printf输出字符串

       逐个字符处理:

    #include<stdio.h>
    int main()
    {
    	char ch[5]; 
    	for (int i = 0; i < 5; i++)
    	{
    		scanf("%c", &ch[i]);
    	}
    	for (int i = 0; i < 5; i++)
    	{
    		printf("%c", ch[i]);
    	}
    	system("pause");
    	return 0;
    

      整个字符串处理:

    #include<stdio.h>
    int main()
    {
    	char ch[5];
    	scanf("%s", ch);
    	printf("%s", ch);//无需&
    	system("pause");
    	return 0;
    }

    说明:以字符串为单位处理时,直接使用数组名,无需&

               输入字符串时,字符个数要小于数组的长度,例如输入5个字符,定义的字符数组至少应该有6个元素

               输入字符串时,遇到回车或空格,输入结束,并且自动在串后面加上结束标志'\0'

               输出字符串时,遇到字符串结束标志’\0',输出结束。


              

    二  : 用字符串处理函数输入和输出       在<string.h>头文件中

        字符串输出函数puts

    格式:puts(字符数组)

    功能:向显示器输出字符串(输出完,自动换行,即用'\n'替'\0')

    说明:字符数组必须以'\0'结束

        字符串输入函数gets

    格式:gets(字符数组)

    功能:从键盘键入以回车结束的字符串放入字符数组中,并自动加’\0'

    说明:输入串长度应小于字符数组维数,字符串中可以包含空格

    #include<string.h>
    int main()
    {
    	char str[10];
    	printf("请输入字符串");
    	gets(str);
    	printf("请输出字符串");
    	puts(str);
    	system("pause");
    	return 0;
    }



    展开全文
  • /*编程从键盘输入一个字符串和一个指定字符, 删除该字符串中所有指定的字符,将结果保存到一个新的字符串中并输出*/ #include<stdio.h> #include<string.h> main() { char str[100],s[100],c; int i=...
  • 字符与字符串输入输出

    千次阅读 多人点赞 2019-10-29 23:24:41
    字符、字符串输入输出scanfprintfgetcharscanf与getchar的区别putchargetsfgetsputscin与coutgetlinecin.getline scanf 不接受空格,回车结束输入 scanf("%c",&a); 读取标准输入流中的第一个字符,包括空格...
  • 可以通过字符数组或字符指针来定义字符串,也可以用宏定义对常量字符串进行定义。 通过字符数组定义字符串 一维的情况如下: char string0[10];//定义个长度为10的字符串,但未赋值 char string1[]="prison break";//...
  • VS中输入字符串和输出字符串问题

    千次阅读 多人点赞 2019-05-24 23:50:24
    VS中输入字符串和输出字符串问题 ** 因为自己刚开始用VS,不是很习惯,今天发现一个问题,就是我想实现输入一段字符串,然后在将它输出来,发现没有输出,反而是听了一会儿,然后闪退了,同样的代码放到Dev C++运行...
  • 字符串输入输出处理。 输入 第一行是一个正整数N,最大为100。 之后输入多行字符串(行数大于N), 每一行字符串可能含有空格,且字符数不超过1000。 输出 对于前N行字符串,按原样输出; 对于其余的...
  • C语言字符串输入输出

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

    千次阅读 2019-07-02 09:59:09
    字符数组就是char数组,当维度是一维时可以当作“字符串”。当维度是二维时可以当作字符串数组,即若干字符串。字符数组的输入除了使用 scanf外,还可以用 getchar或者ges其输出除了使用 printf外,还可以用 putchar或者...
  • 字符串输入输出处理

    万次阅读 2018-02-04 20:19:07
    字符串输入输出处理。 输入 第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。 输出 先将输入中的前N行字符串(可能含有空格)原样输出,再将...
  • C语言字符串输入输出函数

    千次阅读 多人点赞 2020-03-21 18:36:15
    C语言字符串输入输出函数 (1)putchar()函数 格式: putchar© 功能:向终端输出一个字符 注意:输出的时候不会加回车 (2) getchar()函数 格式:字符型变量=getchar () 功能:从标准输入设备上读取单个字符,返回值...
  • C++ 字符数组 字符串输入 输出

    千次阅读 2019-02-19 12:15:59
    C++ 字符数组 字符串输入 输出
  • java字符串输入输出

    千次阅读 2020-05-01 09:54:26
    java字符串输入输出 Java 没有内置的字符串类型, 而是在标准Java 类库中提供了一个预定义类, 很自然地叫做String。每个用双引号括起来的字符串都是String 类的一个实例: String e = ""; // an empty string ...
  • 4.java字符串和输入输出

    万次阅读 2018-11-09 01:50:36
    目录 1.String类 2.StringBuilder类 ...5.输入输出类 6.java格式化输出 1.String类 从概念上讲,java字符串就是Unicode字符序列。​​​​ String类提供处理Unicode代码点(即字符)的方法,以及用于处理...
  • C++字符数组的输入输出 在C++中,字符数组的输入输出有两种方式 逐个输入输出字符 将整个字符串一次输入或输出 经典案例:C++输出字符串 #include<iostream>//预处理 using namespace std;//命名空间 int ...
  • c语言中字符串输入输出的几种方式

    千次阅读 2020-02-11 13:05:31
    在不引入string.h的前提下对字符串进行输入输出操作 ...,以回车或者空格作为输入结束符,自动在字符串末尾补上结束标志符‘\0’,所以无法将包含空格的字符串输入字符数组。 (2)使用getchar()逐个输入字符串 该函...
  • C语言--自定义字符串输入/输出函数

    千次阅读 2019-01-29 16:18:31
    C语言中字符/字符串输入/输出除了调用库函数之外还可以自定义输入/输出函数。 1.代码: #include &amp;amp;lt;stdio.h&amp;amp;gt; #define String &amp;quot;Hello, C&amp;quot; void ...
  • c/c++字符、字符串输入输出

    千次阅读 2016-04-09 16:56:35
    1. scanf 1.1 输入字符 char ch; scanf("%c",&ch); 注意字符前面的取地址符 1.2 输入字符串 char str[15]; ...(1)scanf在输入字符串时,不读入空格回车,在读入空格或回车时,输入结束
  • Java实现 蓝桥杯VIP 算法提高 3-2字符串输入输出函数

    万次阅读 多人点赞 2019-06-22 10:50:10
    算法提高 3-2字符串输入输出函数 时间限制:1.0s 内存限制:512.0MB 描述  编写函数GetRealGetString,在main函数中分别调用这两个函数。在读入一个实数一个字符串后,将读入的结果依次用printf输出。  两次...
  • C语言如何输入输出一个字符串

    万次阅读 多人点赞 2019-03-28 22:41:50
    C语言习题中,经常遇到字符串输入输出,我们在这里简单总结一下字符串输入输出方式。 C语言中用一般用数组来处理字符串,这里暂时讨论一维数组的输入输出,二维之后再加上。 定义:char 数组名[常量] 输入输出:...
  • Java 字符串输入输出函数

    千次阅读 2019-01-22 17:32:13
    在读入一个实数一个字符串后,将读入的结果依次用printf输出。  两次输入前要输出的提示信息分别是"please input a number:\n”"please input a string:\n" 样例输入 9.56 hello 样例输出 ...
  • 字符数组与字符串字符串数组是一种特殊的字符数组。... 字符数组和字符串数组都可以使用%s来输出,要注意的是%s遇到0('\0')就会结束。 字符串数组可以逐个字符初始化,也可以使用字符串初始化。 字符数组的输...
  • 字符及字符串输入输出函数

    千次阅读 2018-09-29 17:11:18
    int getc(FILE *stream) 从指定输入流stream中读取字符(stdin表示字符) int getch(); 键盘读取字符放入缓冲区,不回显 int getchar(); 键盘读取字符放入缓冲区,回显 则字符输入通用格式  char ch; ch=...
  • C语言中字符串输入输出函数实例

    千次阅读 2019-12-28 09:47:09
    C语言系列目录 C/C++学习资源(百度云盘链接) ...字符数据输入输出 字符数据输出函数putchar() C语言中字符数据输出使用的是putchar()函数,它的作用就是向终端输出一个字符。 函数格式如下 int p...
  • 输入一个字符串s,再输入一个字符ch,将字符串中所有的ch字符删除后输出字符串。要求定义调用函数delchar(char *s,char ch),该函数将字符串s中出现的所有ch字符删除。 Input 两行 第一行:一个字符串s(长度...
  • python输入字符串然后列表输出字符ASCII码 str=input('请输入一个字符串:') a=[0]*len(str) #数组初始化 i=0 for x in str: a[i]=ord(x) #将字符转换为ASCII码 i=i+1 result=list(a) print("字符串的ASCII码为:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,098,475
精华内容 439,390
关键字:

字符串的输入和输出