字符串
给出一串字符串“jfkag jekgj gegjkl”
统计所有26个大写字母的个数 和统计所有26个小写字母的个数
希望大虾们能给出代码!!!
[解决办法]
void AlphaCount(char *string,int *capNum,int *smallNum)
{
int i = 0;
while(i<strlen(string))
{
if((*(string+i))>='a'&&(*(string+i))<='z')
(*smallNum)++;
else if((*(string+i))>='A'&&(*(string+i))<='Z')
(*capNum)++;
i++;
}
return;
}
[解决办法]
void AlphaCount(char *string,int *capNum,int *smallNum){ int i = 0; *smallNum = *capNum = 0; while(i<strlen(string)) { if((*(string+i))>='a'&&(*(string+i))<='z') (*smallNum)++; else if((*(string+i))>='A'&&(*(string+i))<='Z') (*capNum)++; i++; } return;}
[解决办法]
void Len(char *str, int *up, int *low){ *up = *low = 0; while(*str != '\0'){ if(*str >= 'a' && *str <= 'z') ++*low; else if(*str >= 'A' && *str <= 'Z'){ ++*up; } ++str; }}
[解决办法]
#include <stdio.h> #include <stdlib.h> #include <conio.h>int main(void) { char c; int num_low = 0; int num_up = 0; printf("please input the string : "); while ((c = getch()) != '\r') { if (c >= 'a' && c <= 'z') ++num_low; if (c >= 'A' && c <= 'Z') ++num_up; putchar(c); } printf("\nLowercase letters number : %d\nUppercase letters number : %d\n", num_low, num_up); system("pause"); return 0; }
[解决办法]
typedef struct counter{ int lower; int upper;}COUNTER;void AlphaCount2(char *string){ int i = 0; COUNTER result[26]={{0,0}}; while(*string!=0) { if(*string>='a'&&*string<='z') result[*string-'a'].lower++; else if(*string>='A'&&*string<='Z') result[*string-'A'].upper++; string++; } for(;i<26;i++) { if(result[i].lower>0) printf("\n%c\t%d",'a'+i,result[i].lower); if(result[i].upper>0) printf("\n%c\t%d",'A'+i,result[i].upper); } return;}
[解决办法]
#include <stdio.h>
main(){
char st[20],*ps;
int i;
int lownum=0;
int upnum=0;
printf("input a string:\n");
ps=st;
scanf("%s",ps);
for(i=0;ps[i]!='\0';i++)
{
if(ps[i]>='a' && ps[i]<='z')
{
lownum++;
}
if(ps[i]>='A' && ps[i]<='Z')
{upnum++;
}
}
printf("lownum of the string is %d\nupnum of the string is %d\n",lownum,upnum);
return 0;
}
[解决办法]
#include <stdio.h>
main(){
char st[20],*ps,a[54]={0};
int i;
int j;
printf("input a string:\n");
ps=st;
scanf("%s",ps);
for(i=0;ps[i]!='\0';i++)
{
for(j='a';j<='z';j++)//字符a==97
if(ps[i]=j)
a[j-97]+=1;
for(j='A';j<='Z';j++) //字符A=65
if(ps[i]=j)
a[j-33]+=1;
}
for(i=0;i<26;i++)
printf("%c:%d\n",i+97,a[i]);
for(i=26;i<54;i++)
printf("%c:%d\n",i+33,a[i]);
}
[解决办法]