在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:
1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。
2、gets()函数用来获取键盘输入的字符串,括号内的s即为字符串变量。
3、接着用puts()函数输出之前我们从键盘读取的字符串。括号内为字符串数组的名字,要与前面的保持一致。
4、然后点击运行,得到以下结果即为正确。
扩展资料:
字符数组的输出:
(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:
for(i=0i<10i++)
a[i]=putchar()
用printf()赋值:
for(i=0i<10i++)
printf("%c",a[i])
输出结果为:
c program [2]
(2)用printf()的'%s'格式对数组赋值。还是对于数组a[10]
printf("%s",a)
输出结果为:
c program
参考资料来源:
百度百科-char
百度百科-字符数组
在C语言中,输入使用的是scanf函数,scanf函数的格式为scanf(格式控制,地址列表),如scanf("%d"&a)。
输出使用的是printf()函数,printf函数的格式为printf(格式控制,输出表列),如printf("%d\n",a)。在输出时可以在"%"和字母之间插进数字表示最大场宽。可以根据需要输出数字的位数来决定“%”前的数值。
如:%3d表示输出3位整型数, 不够3位右对齐。
%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为7,小数点占一位, 不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
扩展资料
C语言输入输出时的规则:
一、格式说明符个数与输入数据个数不相等的情况:
当我们输入数据时,只要没有按回车键,所输入的数据都还存放在缓冲区,并没有存入变量中。按【Enter】键后,scanf()函数才会从缓冲区中取走数据。缓冲区是一个先进先出的队列,即取走数据的时候,遵循先输入的数据先取走的原则。
scanf函数的格式说明符有几个就要取几次数据,只要碰到格式说明符就必须把数据取走,至于是不是要把取走的数据存放起来,就得看数据列表中的数据个数。没取完的数据继续留在缓冲区中。
二、宽度输出的情况:
1、在%和格式字符之间加入一个整数来控制输出数据所占宽度
2、在%和格式字符f之间加入一个“整数1. 整数2”来控制输出数据的格式。
整数1:整个输出数据占的总宽度
整数2:输出实数的小数部分的个数
注意:先用整数2处理小数部分,再用整数1处理整个数据,包括已处理好的小数部分
三、宽度输入的情况:
宽度输入指的是在%和格式说明符d之间加入一个整数。如:scanf("%2d", &x)
注意:
1、%d与%1d是不同的,它们具有不同的含义。
2、 当宽度小于数据的实际宽度时,截取指定宽度的部分作为一个数进入缓冲区,再将剩余部分作为另一个数放入缓冲区。
参考资料来源:百度百科——scanf
百度百科——printf()
getchar和putchar都是对字符操作的,而不是字符串,所以需要设计循环为字符串中每一个字符赋值。
以下是示例代码,需要说明的一点是gets输入字符串对于字符串长度没有限制,可能导致越界溢出,不安全,建议改用fgets,另外在新的微软标准中gets函数已被gets_s函数代替,希望对你有帮助。
include<stdio.h>intmain(){ const int count=21
charstr1[count]charstr2[count]charchprintf("请str1输入字符串(getchar方式):\n")int i=0while((ch=getchar())!'\n'){ str1[i]=chi+if(i=count-1){ str1[count-1]='\0'break} }
str1[i+]='\0'printf("下面输出str1(putchar方式):\n")int j=0while(str1[j]!'\0'){putchar(str1[j])j+}/printf
("请str1输入字符串(gets方式):\n")gets(str2)printf("下面输出str1(puts方式):\n")puts(str2)return0}
1.#include"stdio.hmain(){charcint letters=0,space=0,digit=0,others=0printf("pleaseinputsome characters\n")while((c=getchar())!'\n'){
if(c>='a'&c|c>='A'&c)
letters+else if(c=' ')space+else if(c>='0'&c)
digit+else
others+}printf("all in all:char=dspace=d digit=d others=d\n",letters,space,digit,others)}
2.#include"stdio.hmain()
{
int a,n,count=1long int sn=0,tn=0printf("pleaseinputa and n\n")scanf("%d,%d",&a,&n)printf("a=d,n=d\n",a,n)while(count)
{
tn=tn+asn=sn+tna=a*10count}printf("a+aa+.=ld\n",sn)}
3.#include"stdio.hmain()
{
int a[11]={1,4,6,9,13,16,19,28,40,100}inttemp1,temp2,number,end,i,jprintf("originalarrayis:\n")for(i=0ii+)printf("%5d",a[i])printf("\n")printf("inserta newnumber:")scanf("%d",&number)end=a[9]if(number>end)
a[10]=numberelse
{for(i=0ii+){ if(a[i]>number){temp1=a[i]a[i]=numberfor(j=i+1jj+){temp2=a[j]a[j]=temp1temp1=temp2}
break}
}
}
for(i=0ii+)printf("%6d",a[i])}