c语言字符串输入输出用加'&'吗

作者&投稿:一阎 (若有异议请与网页底部的电邮联系)
c语言中如何输入输出字符串~

在C语言中,输入输出字符串有以下两种方式:
1 用scanf/printf输入输出。
scanf/printf是C语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char*)也
其支持范围内。
格式化字符为%s。
定义
char str[100];
输入
scanf("%s",str);
输出
printf("%s",str);
2 C语言还支持专门的字符串输入输出函数:gets/puts。gets的作用为,读入一行输入,并将读到的换行符替换为字符串结束符。puts的作用为,将字符串单行输出,即输出字符串内容后,会自动在结尾增加换行。定义
char str[100];
输入
gets(str);
输出
puts(str);

扩展资料:
起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。
这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。
K&R C主要介绍了以下特色:
结构体(struct)类型
长整数(long int)类型
无符号整数(unsigned int)类型
把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =- 10,使得处理上产生混淆。
即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最 准要求,许多老旧的编译器仍然运行K&R C的标准。
1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。
1983年,美国国家标准协会(ANSI)成立了一个委员会X3J11,来制定 C语言标准。
1989年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-1989 "Programming Language C"。因为这个标准是1989年通过的,所以一般简称C89标准。有些人也简称ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。
1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990 - Programming languages -- C 。
因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。
1994年,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C89标准修订版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人简称为C94标准。
1995年,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C89标准修订版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity [7] ,有些人简称为C95标准。
参考资料:百度百科-c语言

使用"%s"模式输出
但是这样做有限制:
char
str[255];
用scanf("%s",str);获得输入时,最多容纳254个字符,因为读入操作会在后面加个"\0";
用printf("%s",str);
输出时,数组一定要是用"\0"结束的。
不遵守以上规则会产生数组越界,导致不可知的错误。

不用加。
scanf的参数是指针。所以如果是输入int、double之类的,需要用&;但字符数组名本来就是个指针,所以不用加。
printf的时候,输出int、double或字符串都不加&。

字符串输入一般是两种,输入数据是要对地址进行操作,&就是取地址的运算符,但是数组名本身就是地址,所用不需要取地址操作
一个是gets(a),a是数组名
一个是scanf("%s",a),scanf是对地址操作,a是数组名,本身就是地址,所用不用&取地址了

如果有疑问,可以看看这里
http://bbs.bccn.net/thread-236258-1-1.html

scanf()就可以了

仅仅入scanf加&


c语言字符串数组怎么输入和输出呢
在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:puts():输出字符串并自动换行,该函数只能输出字符串。printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。这两个函数相信大家已经非常熟悉了,这里不妨再演示一下,请看下面的...

C语言上中怎么样直接输入输出一个字符串
C语言中字符串的输入和输出主要有两种方式:输入使用:scanf("%s",a);对应的输出使用:printf("%s\\n",a);输入使用:gets(b);对应的输出使用:puts(b);字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s="a1a2···an"(n>=0)。它是编程语言中表示文本的数据类型。在...

c语言是通过什么来输入输出的?
C语言是通过printf()函数和scanf()函数来进行输入和输出。printf()格式化输出函数,C语言标准库函数,在 stdio.h 中定义。一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为:printf("<格式化字符串>", <参量表>)。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还...

C语言 %d 、 %f 分别是什么意思?
d表示输出输入格式为整型,用于int,shortint;%f表示输出实数,以小数形式输出,默认情况下保留小数点6位。C语言中,输入输出的格式为:输入输出符号(格式化字符串,参量表),格式化字符串由格式控制、和输出表列两部分组成,其中格式控制包含格式声明和普通字符。格式声明由“%”和格式字符组成,如%d、%f等...

C语言:输入一行字符串,将该字符串中所有的大写字母改为小写字母后输出...
在C语言编程中,一个常见的任务是将用户输入的一行字符串中的大写字母转换为小写字母。以下是实现这一功能的步骤:首先,打开VisualC++6.0开发环境,新建一个C源程序项目。在程序中,我们需要定义两个字符变量,c1和c2,用于存储输入的字符和转化后的字符,代码如下:ccharc1,c2;接着,用户通过键盘输入...

在C语言中单个字符输入\/输出函数是什么意思
不在屏幕上显示。fprintf()、fscanf()、fgets()和fputs()举例 fprintf(fp,"%s",words);fscanf(fp,"%s",words);fgets(buf,MAX,fp);\/\/buf 是一个char数组的名称,MAX是字符串的最大长度,fp是一个FILE指针。fputs(buf,fp);\/\/buf是一个char数组的名称,fp是一个FILE指针。

C语言如何一次输入多个字符串,然后再输出
1、首先打开visual studio软件,新建一个C语言文件。2、接着在C语言文件的顶部导入库内。3、接着运用scanf函数接收用户输入的字符串。4、然后我们利用printf函数打印一下用户输入的内容。5、运行程序以后就会弹出如下图所示的CMD界面,我们输入内容就会自动接收到,然后原样输出内容。6、最后如果你接收其他...

C语言:字符串输入与输出相关问题
charstr1[count];charstr2[count];charch;printf("请str1输入字符串(getchar方式):\\n");int i=0;while((ch=getchar())!'\\n'){ str1[i]=ch;i+;if(i=count-1){ str1[count-1]='\\0';break;} } str1[i+]='\\0';printf("下面输出str1(putchar方式):\\n");int j=0;...

怎么在c语言从键盘输入x=20,y=25,z=A,然后将输入的内容从屏幕输出?
&z);printf("您输入的内容为:x=%d, y=%d, z=%c", x, y, z);return 0;} ```运行程序后,会提示用户输入x、y、z的值,格式为"x=20,y=25,z=A"。然后通过scanf函数按照指定格式读取输入内容,并将其分别赋值给变量x、y、z。最后再通过printf函数将读取到的内容输出到屏幕上。

如何使用scanf函数输入字符并且输出字符?
需要注意的是,scanf函数只能读取一行输入,如果需要读取多行输入,可以使用fgets函数。此外,scanf函数和printf函数都有一些格式控制符,用于指定要读取或输出的数据类型和格式。例如,%d表示读取或输出一个整数,%f表示读取或输出一个浮点数,%s表示读取或输出一个字符串等。♡♡ 有帮助到的话...

姚安县19489137813: C语言中 输入与输出到底哪时要加什么 %d %c %f ...... -
何尹女金: 那要看你输入输出的是什么了 是字符 是整形 还是字符串 自己看下边吧 a 读浮点值(仅适用于 C99) A 读浮点值(仅适用于 C99) c 读单字符 d 读十进制整数 i 读十进制、八进制、十六进制整数 e 读浮点数 E 读浮点数 f 读浮点数 F 读浮点数(仅适用于 C99) g 读浮点数 G 读浮点数 o 读八进制数 s 读字符串 x 读十六进制数 X 读十六进制数 p 读指针值 n 至此已读入值的等价字符数 u 读无符号十进制整数 [ ] 扫描字符集合 % 读 % 符号(百分号)

姚安县19489137813: C语言 输入一个字符串 在每个字符后面加个字符*,组成新的字符串,并输出. -
何尹女金: //---------------------------------------------------------------------------#include int main(void) { char c; while ((c=getchar())!='\n') { putchar(c); putchar('*'); } putchar('\n'); return 0; }//---------------------------------------------------------------------------

姚安县19489137813: 关于C语言字符数组输出问题,在printf输出时,二维数组时,%c格式时不用&,为什么%s时要加&.详细如下: -
何尹女金: 错得远了点!1. 既没有s这个数组,也没看到声明它是指针,s[0]、&s[0]等从哪里来?2. char str[3][5]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}这样定义的str只是个单字节整型二维数组,不得用%s这样的格式化控制符来控制按字符串输出!3. &str[2][2]是11那个数的地址,正宗的应该用%p控制输出,用%x、%d也行,但就是不能用%s控制输出,因为%s是用来输出字符串的!……

姚安县19489137813: C语言上中怎么样直接输入输出一个字符串 -
何尹女金: C语言中字符串的输入和输出主要有两种方式: 输入使用:scanf("%s",a);对应的输出使用:printf("%s\n",a); 输入使用:gets(b);对应的输出使用:puts(b);字符串或串(String)是由数字、字母、下划线组成的一串字符.一般记为 s=...

姚安县19489137813: c语言,结构体里读写为什么输出要加&符号
何尹女金:&c[1]表示是存放x这个变量的 内存地址 就好比 假如有一个叫x的人 这个人可以是任何人 我们就说他是一个人的变量 那么 &x表示的就是这个人的住址 明白

姚安县19489137813: C语言 输入字符串以#结束,对字符串中的数字字符求和输出. -
何尹女金: #include <stdio.h> int main() { char a[20]; int i=-1; int n=0; //相加的大小 do { i++; scanf("%c",&a[i]); }while(a[i]!='#'); i=0; while(a[i]!='#') { if (a[i]>='0' && a[i]<='9') { n=n+a[i]-48; //48是0的acsII码.这里意思就是a[i]-'0'; } i++; } printf("%d",n); return 0; }

姚安县19489137813: c语言书写
何尹女金: &是 取地址符,之所以你觉得“语言中输入语句最后的数据字前必加&”,是因为你一般都是把输入结果给一个变量,而我们只能把这个值存到这个变量的地址处,所以要取地址.如果你直接传入的是地址,当然就不用&.比如: int a, *p; p = &a; scanf("%d",p); 这样是可以的. 同理输出语句有时候也要 &,比如我想输出变量的地址. &什么时候用于 语句是否输入输出 无关. define 定义一个命令后,可以执行预编译的部 花括号 属于函数体,只有含有花括号,才是一个完整的程序块.而函数体正是一个函数块

姚安县19489137813: c语言中手写输出结果要加回车么 -
何尹女金: 你好. 你的问题不是很明确. 输出结果如果需要回车的话,标准输出格式需要加换行符'\n' 如果输出已有字符串,本身含有换行符的不用加,本身没有的,使用字符串输出函数puts()也不用加. 如果没有解决可继续追问,希望可以帮到你.

姚安县19489137813: c语言中char类型数组的输出问题 -- 输出时为何需要&符? -
何尹女金: 在C语言中数组的名字即数组的起始地址,也是数组第一个元素的地址.因此,假设有一个char类型的数组a表示成如下代码: char a[20]; 那么a表示字符数组的起始地址,它和&a[0]是一个意思. 使用printf()输出字符数组a的内容: printf("%...

姚安县19489137813: 急求!!C语言编程,键盘输入,一个字符串,在每个字符间插入逗号输出 -
何尹女金: #include <stdio.h> #include <string.h> void main() { int i,k; char str[1000]; scanf("%s",str);//楼上这里错了,gets(str)不能这么用 k=strlen(str); for(i=0;i<k-1;i++) printf("%c,",str[i]); printf("%c",str[k-1]); }

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