一维数组练习题答案

1.从键盘输入一段字符串,算出其中的整数个数,并输出这些整数

#include<stdio.h>

int main()

{

char a[100];

char b[100];

int num=0;

scanf("%s",a);

for(int i=0;i<strlen(a);i++){

if(a[i]>='0'&&a[i]<='9'){

b[num]=a[i]; num++;

}

}

puts(b);

printf("%d",num);

return 0;

}

2.从键盘输入一行字符串,再输入一个字符,判断后来输入的字 符在前面字符串中出现的次数,若没有则输出此字符不存在

#include<stdio.h>

int main()

{

char a[100];

char b;

int num=0;

scanf("%s",a);

//1.清除缓冲区 fflush(stdin); 2.下面的scanf %c前面加一个空格 3.getchar();

scanf(" %c",&b);

for(int i=0;i<strlen(a);i++){

if(a[i]==b){

num++;

}

}

if(num!=0){

printf("%d",num);

}else{

printf("不存在这个字符");

}

return 0;

}

}

3.逆序排列用交换算法,求出字符串最后一个字符的下标,然后将第一个和最后一个交换,第二个和倒数第二个交换...

#include<stdio.h>

#include<string.h>

int main()

{

char a[100];

gets(a);

char temp;

for(int i=0;i<strlen(a)/2;i++){

temp=a[i];

a[i]=a[strlen(a)-1-i];

a[strlen(a)-1-i]=temp;

}

puts(a);

return 0;

}

4.从键盘随意输入一段字符串,判断字符串中字母、数字、空格、其它字符的个数。

#include<stdio.h>

#include<string.h>

int main()

{

char a[100];

gets(a);

int c=0,s=0,k=0,q=0;

for(int i=0;i<strlen(a);i++){

if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')){

c++;

}else if(a[i]>='0'&&a[i]<='9'){

s++;

}else if(a[i]==' '){

k++;

}else{

q++;

}

}

printf("字符的个数:%d,数字的个数:%d,空格的个数:%d,其他字符的个数:%d\n",c,s,k,q);

return 0;

}

5..从键盘输入一段字母字符串,将大小写进行转化

#include<stdio.h>

#include<string.h>

int main()

{

char a[100];

scanf("%s",a);

for(int i=0;i<strlen(a);i++){

if(a[i]>='a'&&a[i]<='z'){

a[i]=a[i]-32;

}else if(a[i]>='A'&&a[i]<='Z'){

a[i]=a[i]+32;

}

}

puts(a);

return 0;

}

 

 

 

发布者:张洋洋   点击数:622   发布时间:2018-10-15   更新时间:2018-10-19