精华内容
下载资源
问答
  • 2021-05-19 09:30:43

    c语言怎么用scanf输入字符串

    发布时间:2021-04-16 13:59:23

    来源:亿速云

    阅读:102

    作者:小新

    这篇文章主要介绍c语言怎么用scanf输入字符串,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在C语言中,可以使用“scanf(“格式控制字符串”,变量内存地址)”语句输入字符串。scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。

    本教程操作环境:windows7系统、C++17版本、Dell G3电脑。

    scanf函数的一般形式

    scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为:scanf(“格式控制字符串”, 地址表列);

    其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。

    例如:&a、&b分别表示变量a和变量b的地址。

    这个地址就是编译系统在内存中给a、b变量分配的地址。在C语言中,使用了地址这个概念,这是与其它语言不同的。 应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。

    变量的地址和变量值的关系

    在赋值表达式中给变量赋值,如:

    a=567;

    则,a为变量名,567是变量的值,&a是变量a的地址。

    但在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的地址。#include 

    int main(void){

    int a,b,c;

    printf("input a,b,c\n");

    scanf("%d%d%d",&a,&b,&c);

    printf("a=%d,b=%d,c=%d",a,b,c);

    return 0;

    }

    在本例中,由于scanf函数本身不能显示提示串,故先用printf语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,等待用户输入。在scanf语句的格式串中由于没有非格式字符在“%d%d%d”之间作输入时的间隔,因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的间隔。如:

    7 8 9

    7

    8

    9

    以上是“c语言怎么用scanf输入字符串”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

    更多相关内容
  • 在C语言中,输入输出字符串有以下两种方式:1 用scanf/printf输入输出。scanf/printf是C语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char*)也.在运行后我发现系统对于输入的c和ch并没有正确...

    但是实际操作发现我的字符串无论输入的多长多短,都是输入的什么输出的就.

    在C语言中,输入输出字符串有以下两种方式:1 用scanf/printf输入输出。scanf/printf是C语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char*)也.

    在运行后我发现系统对于输入的c和ch并没有正确赋值,从而导致结果不正确.

    字符串输入直接用scanf("%s",str);就可以了,你的问题在于str[]没赋值之前每项都是'\0',不能作为循环条件,当然是在输入时。再输出时可以把这个作为循环条件

    =EOF) scanf("%c",para); printf("the input words: \n"); for(i=strlen(para);i>.

    scanf("%c",para);这个位置要用循环。

    C语言中字符串的输入和输出主要有两种方式: 输入使用:scanf("%s",a);对应的输出使用:printf("%s\n",a); 输入使用:gets(b);对应的输出使用:puts(b); 参考.

    除了利用数组来输入,还有什么办法?能通过指针来完成字符串的输入吗?。

    我举例吧 #include void main() {char a[10]; char *p; int i; scanf("%s",a); p=a; scanf("%s",p); for(p=a;p

    要求用到循环for,和输入语句puts!

    #include main() { int i,a[10]; for(i=o,i<=9,i++) {scanf("%c",&a[i]) } 这样就可以输入了

    /*输入多百个字符串需要有结束条件,可以事先约定输入多少个字符串度,也可以是输入特定字符串*/#include #include void main() { int i,k=0,n=10; char .

    fprintf()、fscanf()、fgets()和fputs() 举例 fprintf(fp,"%s",words); fscanf(fp,"%s",words); fgets(buf,max,fp);//buf 是一个char数组的名称,max是字符串的最大长度,fp是一个.

    我也试了一下,没问题,你到底是什么问题,是要在s1或s2中输入空格吗?那么用gets函数;gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换.

    无论输入什么,输出的结果都类似于“ termination”加上三个字符的乱码。 。

    编程方法如下:1、用char s[字符数量]定义字符串数组,如给字符串100个数组空间。方括号内为定义的字符串数组的数量。2、用gets()函数来获取键盘输入的字符串。.

    我用以下语句输入字符串: char *p,str[100]; int sum1=0,sum2=0,sum3=0,sum4.

    用gets()函数代替就可以了,和scanf("%s",p)差不多,你可以使用gets(p);

    键盘输入字符串,遇‘#’结束,分别统计字母、数字和其它字符个数。 统计.

    那可以用 if(a[i]>97&&a[i]<122||a[i]>65&&a[i]<90) letter++;

    #include //输入一个字符串,在指定位置插入一个字符的c语言怎么写 void insertcharacter(char a[], int n,char c); void print(char a[]); int main(int argc, const char * argv[]) { char.

    用puts(),get()

    puts()和gets()都是数组函数,输入或输出前要定义数组例如:char a[50];gets(a);puts(a);就是一个简单的输入后再将输入的东西输出,puts()的输入和printf的输出.

    你的意思是输入多余的字符吧?1、因百为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字度符的变量ch,但却输入了多余的字符,这种情况.

    一维字符数组可以表示一个字符串,怎么从键盘输入字符串阿??就是char* .

    char a[10];for(int i=0;i<10;i++)scanf("%s",&a[i]);

    我的想法是:输入一段字符串,然后系统判断是否符合要求,符合就执行某条.

    可以按照如下步骤:1 读入字符串,可以使用scanf以%s的方式读入字符串,也可以以gets一次读入整行字符串。2 判断字符串。使用strcmp函数,与设定的字符串相比较。.

    就是这样它不让我输入字符串数组 #include int main() { void a(int a); int c=1; .

    在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储。输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets.

    #include{ char str; gets(str);}

    "string.h" main() { char s[20]; int i,sum=0; printf("输入:"); scanf("%。

    //运算过后才输出呢#include "stdio.h"#include "string.h" main() { char s[20]; int i,sum=0; printf("输入:"); scanf("%s",s); for (i=0;s[i]!='\0';i++) if(s[i]>='0' && s[i]<.>

    展开全文
  • c语言如何用scanf输入字符串

    千次阅读 2021-05-19 09:30:02
    在C语言中,可以使用“scanf(“格式控制字符串”,变量内存地址)”语句输入字符串scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的...

    在C语言中,可以使用“scanf(“格式控制字符串”,变量内存地址)”语句输入字符串。scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。

    a05b5cfb145ff5391b99a4b823b40940.png

    本教程操作环境:windows7系统、C++17版本、Dell G3电脑。

    scanf函数的一般形式

    scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为:

    scanf(“格式控制字符串”, 地址表列);

    其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。

    例如:&a、&b分别表示变量a和变量b的地址。

    这个地址就是编译系统在内存中给a、b变量分配的地址。在C语言中,使用了地址这个概念,这是与其它语言不同的。 应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。

    变量的地址和变量值的关系

    在赋值表达式中给变量赋值,如:

    a=567;

    则,a为变量名,567是变量的值,&a是变量a的地址。

    但在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的地址。

    #include

    int main(void){

    int a,b,c;

    printf("input a,b,c\n");

    scanf("%d%d%d",&a,&b,&c);

    printf("a=%d,b=%d,c=%d",a,b,c);

    return 0;

    }

    在本例中,由于scanf函数本身不能显示提示串,故先用printf语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,等待用户输入。在scanf语句的格式串中由于没有非格式字符在“%d%d%d”之间作输入时的间隔,因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的间隔。如:

    7 8 9

    7

    8

    9

    推荐教程:《C#》

    展开全文
  • scanf输入字符串以及空格问题

    千次阅读 2020-02-05 18:53:09
    输入 输入字符串可选择使用数组...scanf输入字符串时,总是在字符处停止扫描,如输入‘I am a student’,输出只为‘I’ 原因 scanf输入字符串的时候不会接收Space空格,回车Enter,Tab键,则认为输入结束。scanf函...

    输入

    输入字符串可选择使用数组,并在数组后加一个界限,如以下例题就在str[10]右面加上界限10.
    在这里插入图片描述
    注意数组界限为10,最多输入九个字符,留下一个为’/0’的位置

    空格问题

    常见问题
    scanf输入字符串时,总是在字符处停止扫描,如输入‘I am a student’,输出只为‘I’
    原因
    scanf输入字符串的时候不会接收Space空格,回车Enter,Tab键,则认为输入结束。scanf函数直接从输入缓冲区中取数据,而并非从键盘(也就是终端)缓冲区读取。

    解决方法

    方法一
    输入多个字符串,中间空格隔开
    在这里插入图片描述
    方法二

    用get_s()替代scanf_s();
    gets可以无限读取字符串,不会判断上限,以回车结束读取。其用法为get_s(s,N-1),其中s为字符串变量(字符串数组名或字符串指针),N为数组个数。
    在这里插入图片描述

    展开全文
  • c总结 使用scanf输入字符串问题

    万次阅读 多人点赞 2018-08-23 18:35:02
    学习c时经常遇到字符串的输入问题,使用scanf输入时总是会或多或少的遇到错误,总结一下我遇到过的情况 ...还没有输入字符串输入就结束了。当我们需要调用scanf输入的时候,输入的字符送到键盘缓冲区,然后s...
  • scanf输入字符串遇到空格?

    万次阅读 多人点赞 2019-06-02 12:34:49
    scanf输入字符串(含有空格的字符串,例如:“I love you!”)时,总是在空格处停止扫描。我们用scanf("%s",str);输入 “I love you!” 字符串后,str输出却只有 “I” ,这并不是我们想要的。这是因为scanf扫描到 ...
  • C语言scanf输入字符串,举例详解

    万次阅读 多人点赞 2020-05-12 18:24:55
    除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串。下面写一个程序: #include <stdio.h> int main(void) { char str[10]; //str是string的缩写, 即字符串 printf("请输入字符串:"); scanf("%...
  • scanf输入字符串遇到空格问题

    千次阅读 2020-04-18 17:04:03
    今天scanf输入字符串时候,比如输入 Today is 2008/8/8 经过调试发现,遇到空格被scanf认为输入完成了,实际上这个字符串输入的是Today 经过查找问题,解决方法有两个:(代码有注释 ) #include <stdio.h>...
  • scanf输入字符串

    千次阅读 2019-05-26 08:25:59
    #include<stdio.h> #include<string.h> int main(void) { char str[10]; printf("请输入字符串:"); scanf("%s", str); printf("输出结果:%s\n", str); return 0; }
  • 今天用scanf输入字符串的时候,输出乱码,但是我如果指定写死了字符串就没有乱码 int main() { //1.不乱码情况,但是写死了 //char str[N]="I am a good boy"; //2.乱码情况 char str[N]; printf("请输入一条...
  • 除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串。下面写一个程序: # include <stdio.h> int main(void) { char str[10]; //str是string的缩写, 即字符串 printf(“请输入字符串:”); scanf...
  • 上面代码为什么每次循环输入后用getchar吸收换行符而下面代码不用呢 ``` #include #include char ch[100]= {0}; int main() { int n, i = 0; scanf("%d", &n); while(n) { scanf("%s", ch); n--...
  • 关于scanf输入字符串回车的问题

    千次阅读 2020-03-28 23:17:42
    首先看现象 #include<stdio.h> #include<stdlib.h> #include <string.h> int main(void) //1094 { setvbuf(stdout,NULL,_... //解决 scanf不能debug的问题 char a[1001]; char i=0,j=0; s...
  • 1,c++中输入字符串: string s; scanf("%s",&s[0]); c++中string类型的变量是一个对象,其中包含字符串本身的内容以及相关函数,内存中不仅仅存放字符串内容。用printf输出要用: printf("%s",s.c_str()) ...
  • scanf("%s",a); printf("%s",a); 这样写,编辑器就会报错。那么怎么解决这个问题呢? 很简单,只需要在变量后加一个“.c_str()”就行了。 具体代码段如下: string a; scanf("%s",a.c_str()); printf("%s",a.c_str...
  • 为什么在C语言中,用scanf输入字符串时,不需加&

    万次阅读 多人点赞 2019-01-31 14:37:23
    因为字符串变量名在 scanf 语句里 表示指针 (地址) 例如: char s[80]; scanf(&quot;%s&quot;,s); — 这里的s 已是地址。 当然,写成 scanf(&quot;%s&quot;,&amp;amp;s[0] ); 也可以, &...
  • scanf_s输入字符串

    千次阅读 2022-02-25 12:41:03
    vs2019。 为了安全,scanf_s输入字符串时需要加一个数字来限制最多读取的字符数。
  • c++中对于字符串输入输出一般用cin,cout,但是对于大量的输入和输出,cin和cout会消耗大量的时间,可以用以下操作实现scanf和printf的输入输出。 #include<cstdio> #include<string> using namespace...
  • scanf写入字符串给指针

    千次阅读 2021-03-22 19:00:09
    #include"stdio.h" main() {struct st { int nu ; char *name ;//野指针 }a[3];...C语言是比较低级的语言,没有字符串概念,只有字符数组,不能自动分配空间,要存放数据,必须预先定义存储空间的大小!
  • #关于VS2017中C语言的关于输入scanf输入字符串的问题

    千次阅读 多人点赞 2019-01-30 20:30:39
    #关于VS2017中C语言的关于输入scanf输入字符串的问题 1,通常使用scanf,VS里面使用scanf_s和printf_s 2, 输入整数,字符串等,要注意格式 输入a ,得到结果a 如果是输入字符串的话,直接运行,输入asdf,会没有结果...
  • scanf读入字符串的方法

    万次阅读 2019-07-21 16:31:36
    1、使用cin读入n再scanf读入二维字符数组 (每一个都用字符读入) #include<iostream> #include<string> #include<stdio.h> using namespace std; int main(){ int n; cin>>n;//这里如果...
  • 在VS中使用scanf_s函数输入一个字符串并将其保存在数组pet中,若按下面这么写,总会出现一些奇怪的报错 #include<stdio.h> int main(void) { int age; float assets; char pet[30]; scanf_s("%d", &...
  • 首先先创建一个实例来...也就是说scanf读取的是一个 数组指针的类型,而不是一个字符数组.相当于取得是存放着字符数组地址的指针。就是数组指针类型。 可能理解的不是很到位,欢迎大家提出问题,帮忙补充!谢谢! ...
  • scanf 读入字符和字符串
  • 在visual studio上使用scanf_s输入字符串报错,如 scanf_s("%s", name); 这是因为scanf_s在读取字符串时,需要提供一个数字以表明读取多少个字符,以防止溢出。 scanf_s("%s", name, 20);
  • 有的时候在c++里要用scanf、printf输入输出string型字符串,这是可以实现的,不过要做一点处理。 具体操作看代码: #include<cstdio> #include<string> using namespace std; int main() { int n; ...
  • printf("输入一个字符串="); scanf_s("%s",a); } 如若还像以前一样将会报错:0x7973E689 (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 写入位置 0x01360000 时发生访问冲.
  • gets(s)函数与 scanf(“%s”,&s) 相似,但不完全相同,使用scanf(“%s”,&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的...
  • 出错的情况是写成了scanf("%s", str), 报错是存在内存冲突。... printf_s("用scanf读入字符串,以enter结束输入。(程序以空格或tab停止读入):\n"); scanf_s("%s", str,10); // 要写三个参数,最后一个指定缓冲区...
  • 在c++中 ...scanf("%s", str.c_str()); printf("%d", str.length()); ``` 输出结果始终为0,这是什么原因? 应该用什么方法来得到string的长度? 哪个大佬来指点指点我这个弱鸡,感谢!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,377
精华内容 62,150
关键字:

scanf输入字符串