void main() {int a=0,b=0,d=0;char *s="xcbc3abcd";for(;*s!=`\
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/02 08:34:15
void main() {int a=0,b=0,d=0;char *s="xcbc3abcd";for(;*s!=`\0`;s++ )
switch(*s)
{case`a`:a++;break;
case`b`:b++;break;
default:d++;
}
printf("a=%d,b=%d,d=%d\n",a,b,d);
}
switch(*s)
{case`a`:a++;break;
case`b`:b++;break;
default:d++;
}
printf("a=%d,b=%d,d=%d\n",a,b,d);
}
这个程序应该是找一个字符串中'a'的个数、'b'的个数、还有剩余字符的个数.
有什么不明白的吗?
再问: 就是不明白那个for(;*s!=`\0`;s++ )
再答: for是一个循环这应该知道吧。 char *s="xcbc3abcd"这是字符串用字符指针表示的方式。引用其中,因为是字符串,所以d最后还有一个'\0',但没有显示出来。 字符指针引用字符串的的元素是这样的:*(s+i) 就相当于s[i]。
再问: 这样子说我明白了,然后执行下面的语句的时候,就是switch(*S) CASE`a`:a++;break; 到这里的时候 我怎么理解它啊?他是不是算在条件为*s里面,情况为a=0的时候开始,执行a++然后就中断
再答: switch case 语句你上网查一下就知道了。 意思就是说: 判断*s,如果*s为字符'a'的话,a(与字符'a‘是两码事儿)自增一。然后跳出这个switch case 语句,继续for循环。如果*s不为字符'a'的话,执行下面的case 'b':b++;break;(以此类推)。
有什么不明白的吗?
再问: 就是不明白那个for(;*s!=`\0`;s++ )
再答: for是一个循环这应该知道吧。 char *s="xcbc3abcd"这是字符串用字符指针表示的方式。引用其中,因为是字符串,所以d最后还有一个'\0',但没有显示出来。 字符指针引用字符串的的元素是这样的:*(s+i) 就相当于s[i]。
再问: 这样子说我明白了,然后执行下面的语句的时候,就是switch(*S) CASE`a`:a++;break; 到这里的时候 我怎么理解它啊?他是不是算在条件为*s里面,情况为a=0的时候开始,执行a++然后就中断
再答: switch case 语句你上网查一下就知道了。 意思就是说: 判断*s,如果*s为字符'a'的话,a(与字符'a‘是两码事儿)自增一。然后跳出这个switch case 语句,继续for循环。如果*s不为字符'a'的话,执行下面的case 'b':b++;break;(以此类推)。
void main() {union { int k; char i[2]; }*s,a; s=&a; s->i[0]=
void fun(char *s[],int n) { char *t;int i,j for(i=0;i
void main() {char ch[20]="Example354"; for(int i=0;i='A'
void main( ) { char *s="12134211"; int v[4]={0,0,0,0},k,i; f
void func(char *s) { int sum = 0; while(*s) sum += (*s++ - 9
#include main(){char s[]="012xyz\08s34f4w2"; int i,n=0; for(
void fun (char *a,char *b) {a=b} void main() {char c1='A',c2
void fun(char *a1,char *a2,int n) { int k; for(k=0; k
偶数字母换成大写.#include void chg(char *s){int i,n=0;char *p=s;whil
#include void main() {int a=1,m,n,j,s=0;
#include void main(){int a[30];int i;for (i=0,i
这个程序有什么问题?#include/*void strcpy(char *s,char *t){int i=0;whi