c语言字符数组和字符串编程题 求解
不能用strlen、gets字符串函数。
可用scanf函数%s格式实现输入,可用while(str[i]!='\0') 判断字符串结束统计。
设计子函数 void Total(char st[],int b[]),不在子函数中输出,用数组b存储各个长度。 展开
#include <stdio.h>
int main(){
void Total(char st[],int b[]);
char st[20];
int b[4]={0,0,0,0};
scanf("%s",st);
Total(st,b);
printf("字符串长度:%d,字母个数:%d,数字个数:%d,其他字符个数:%d\n",b[0],b[1],b[2],b[3]);
return 0;
}
void Total(char st[],int b[]){
int i;
while(st[i]!='\0'){
b[0]++;
if((st[i]>='A' && st[i]<='Z')||(st[i]>='a' && st[i]<='z')){
b[1]++;
}else if(st[i]>='0' && st[i]<='9'){
b[2]++;
}else{
b[3]++;
}
i++;
}
}
#include <stdio.h>
int main() {
void Total(char st[], int b[]);
char st[20];
int b[4] = { 0,0,0,0 };
scanf_s("%s", st , 20);
Total(st, b);
printf("字符串长度:%d,字母个数:%d,数字个数:%d,其他字符个数:%d\n", b[0], b[1], b[2], b[3]);
return 0;
}
void Total(char st[], int b[]) {
int i=0;
while (st[i] != '\0') {
b[0]++;
if ((st[i] >= 'A' && st[i] <= 'Z') || (st[i] >= 'a' && st[i] <= 'z')) {
b[1]++;
}
else if (st[i] >= '0' && st[i] <= '9') {
b[2]++;
}
else {
b[3]++;
}
i++;
}
}