C语言:字符串输入与输出相关问题

如题所述

第1个回答  2022-11-16

getchar和putchar都是对字符操作的,而不是字符串,所以需要设计循环为字符串中每一个字符赋值。

以下是示例代码,需要说明的一点是gets输入字符串对于字符串长度没有限制,可能导致越界溢出,不安全,建议改用fgets,另外在新的微软标准中gets函数已被gets_s函数代替,希望对你有帮助。

include<stdio.h>intmain(){ const int count=21;

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;while(str1[j]!'\0'){putchar(str1[j]);j+;}/printf

("请str1输入字符串(gets方式):\n");gets(str2);printf("下面输出str1(puts方式):\n");puts(str2);return0;}

1.#include"stdio.hmain(){charc;int letters=0,space=0,digit=0,others=0;printf("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=1;long int sn=0,tn=0;printf("pleaseinputa and n\n");scanf("%d,%d",&a,&n);printf("a=d,n=d\n",a,n);while(count)

{

tn=tn+a;sn=sn+tn;a=a*10;count;}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,j;printf("originalarrayis:\n");for(i=0;i;i+)printf("%5d",a[i]);printf("\n");printf("inserta newnumber:");scanf("%d",&number);end=a[9];if(number>end)

a[10]=number;else

{for(i=0;i;i+){ if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j;j+){temp2=a[j];a[j]=temp1;temp1=temp2;}

break;}

}

}

for(i=0;i;i+)printf("%6d",a[i]);}

C语言:字符串输入与输出相关问题
("请str1输入字符串(gets方式):\\n");gets(str2);printf("下面输出str1(puts方式):\\n");puts(str2);return0;} 1.#include"stdio.hmain(){charc;int letters=0,space=0,digit=0,others=0;printf("pleaseinputsome characters\\n");while((c=getchar())!'\\n'){ if(c>='a'&c|c...

c语言中关于字符的输入输出问题。 我想知道输入scanf(%c,a[i...
putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。getchar函数的功能是从键盘上输入一个字符。 函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。printf 函数称为格式输出函数.一般形式为:printf(“格式控制字符串”,输出表列)scanf 函数在本质上也是...

C语言:四个字符串的输入输出,前两个用%S输入,后两个用gets()输入,用p...
gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s)函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符 串直到回车为止。gets(s)函数中的变量s为一字符串。如果为单个字符,...

有关C语言中字符串输入及循环语句问题
楼主的问题主要是puts引起的,puts输出是遇到结束符后才结束的,所以输出的后面会出现乱码的现象(未知字符)解决这个问题非常简答,就是在c数组转换完毕后添加一个结束符 修改如下:include include void main(){ int i,l;char ch[10],c[10],*p;gets(ch);l=strlen(ch);puts(ch);p=ch l-1;...

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

c语言double类型输出问题及字符输入问题
double要用%lf 你输入字符串时,肯定按了回车,而回车实际上输入了2个字符,第1个被用来确认scanf结束,还有一个仍然保留在了缓冲区内,被scanf("%c",&ch);读到了,这个字符是个控制字符,所以不可见.在任何读取字符的语句之前,你最好用fflush(stdin);来清空一下缓冲区....

C语言类问题 输入字符串,输出该字符串中ASCII码值最大和最小的字符...
main(){ char s[100];char max,min;int i=1;scanf("%s",s);max=s[0],min=s[0];while(s[i]!='\\0'){ if(maxs[i])min=s[i];i++;} printf("最大字符:%c,最小字符:%c",max,min);}

C语言字符串问题: 输入一个字符串,其中有空格,因此字符串被分为n个...
printf("请输入一个字符串:\\n");gets(str);n=Div(str,word);printf("共有%d个单词\\n",n+1);for(i=0;i<=n;i++)printf("%s ",word[i]);printf("\\n");m=ZiMu(word,n,ch);if(m==0){ printf("没有重复字母!即 no!\\n");} else { printf("全部单词中重复的字母如下:")...

C语言编程问题:输入一个字符串,再输入一个字符ab,将字符串中所有的ab...
定义三个字符串:str[], ab[], output[],str是输入的第一个字符串,output放的是最后的结果。设置两个下标 i,j。i指向第一个字符串,j指向第二个子符串;i每次向后移动一个位置,i往后的strlen(ab)个字符是不是和字符串ab匹配,如果不匹配就把str[i]添到字符串output中,如果匹配,就让i...

C语言输入字符串之后不能输出
include<stdio.h>#include<string.h>void power(char str[]){ \/\/ puts(str); int i,legend; legend=strlen(str); if(str[0]>='A'&&str[0]<='Z') str[0]=str[0]; else str[0]=str[0]-32; for(i=1; i='A'&&str[i]<='Z') str[i]=str[i...

相似回答
大家正在搜