C语言:字符串输入与输出相关问题
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]);}