C语言统计其中大写辅音字母的个数,c语言第二次试验报告 - osc_ldea7g3t的个人空间 - OSCHINA - 中文开源技术交流社区...

本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。

2.设计思路

11-6 方阵循环右移

对给定的数组,通过其下标数值寻找规律移动。

12-1 统计大写辅音字母

输入的字符串逐个判断是否为辅音字母,最后一位为\0。

13-5 判断回文字符串

把字符串分开,前部由小到大推进,后部由大到小推进,若有发现不等的情况,则字符非回文字符串。

14-2 删除字符

循环逐个查找是否有不等于输入的字符,若不相等存到另一个数组中,最后将该数组复制给原数组返回。

15-2 分类统计各类字符个数

if语句判断字符,用指针返回。

二.源程序(可只截取最关键的部分)

1:11-6 方阵循环右移

#include

int main()

{

int m,n,a[6][6],i,j,k,b[6][6];

scanf("%d%d",&m,&n);

for(i=0;i

{

for(j=0;j

{

scanf("%d",&a[i][j]);

}

}

for(i=0;i

{

for(j=0;j

{

k=(j+m)%n;

b[i][k]=a[i][j];

}

}

for(i=0;i

{

for(j=0;j

{

printf("%d ",b[i][j]);

}

printf("\n");

}

return 0;

}

2:12-1 统计大写辅音字母

#include

int main()

{

int i,c;

char str[80];

i=0;

while((str[i]=getchar())!='\n')

i++;

str[i]='\0';

c=0;

for(i=0;str[i]!='\0';i++)

{

if(str[i]<='Z'&&str[i]>'A'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U')

c++;

}

printf("%d",c);

return 0;

}

3:13-5 判断回文字符串

裁判判定:

#include

#include

#define MAXN 20

typedef enum {false, true} bool;

bool palindrome( char *s );

int main()

{

char s[MAXN];

scanf("%s", s);

if ( palindrome(s)==true )

printf("Yes\n");

else

printf("No\n");

printf("%s\n", s);

return 0;

}

代码:

bool palindrome( char *s )

{int n,n2;

n=strlen(s);

n2=n;

for(int i=0;i

{

if(s[i]!=s[n2-1])

return false;

}

return true;

}

14-2 删除字符

裁判测试程序样例:

#include

#define MAXN 20

void delchar( char *str, char c );

void ReadString( char s[] ); /* 由裁判实现,略去不表 */

int main()

{

char str[MAXN], c;

scanf("%c\n", &c);

ReadString(str);

delchar(str, c);

printf("%s\n", str);

return 0;

}

代码:

void delchar( char *str, char c )

{

int len,i,j=0;

char b[100];

len=strlen(str);

for(i=0;i

{

if(str[i]!=c)

{

b[j]=str[i];

j++;

}

}

strcpy(str,b);

str[j]='\0';

}

15-2 分类统计各类字符个数

裁判测试程序样例:

#include

#define MAXS 15

void StringCount( char *s );

void ReadString( char *s ); /* 由裁判实现,略去不表 */

int main()

{

char s[MAXS];

ReadString(s);

StringCount(s);

return 0;

}

代码:

void StringCount( char *s )

{

int i,big=0,small=0,blank=0,dight=0,other=0;

for(i=0;s[i]!='\0';i++)

{

if(s[i]>='A'&&s[i]<='Z')

big++;

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

small++;

else if(s[i]==' ')

blank++;

else if(s[i]>='0'&&s[i]<='9')

dight++;

else

other++;

}

printf("%d %d %d %d %d",big,small,blank,dight,other);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值