//输入五个城市拼音名(五个字符串),将其排序.==>字符串排序问题(根据acm码排序)
#include<stdio.h>
#include<string.h>
int main(){
char a[5][80]; //如果要让许多个字符串储存在数组中,
//我们会用二维数组进行储存。a[0]就是一个字符串 ,a[1]里头也是个字符串
char ch[20];
int i,j;
for(i=0;i<5;i++){
gets(a[i]);
}
printf("\n");
for(i=1;i<=4;i++){ //冒泡排序法
for(j=0;j<5-i;j++){
if(strcmp(a[j],a[j+1])>0){ //字符串的比较是通过strcmp进行的
strcpy(ch,a[j]); //字符串的交换通过strcpy进行的
strcpy(a[j],a[j+1]);
strcpy(a[j+1],ch);
}
}
}
for(i=0;i<5;i++){
puts(a[i]); //输出字符串可以用puts函数,要熟悉
}
return 0;
}
//统计单词个数 //how are you
#include<stdio.h>
#include<string.h>
int main(){
char a[80];
gets(a);
int i,p,flag=0,cnt=0;//一开始就让flag=0,是为了进入else后能加1
p=strlen(a);
for(i=0;i<p;i++){ //开始读取这个数组单元时,有两种情况
if(a[i]==' '){//一种是字符为空格
flag=0;//空格让flag=0,下次若不是空格,则会加1
}
else{//一种是字符不是空格,也就是是字母的情况
if(flag==0){
flag=1;//如果这一次是字母,下一次还是字母,cnt就不会加1
cnt++;//也就是说让cnt加1的条件是flag=0 这是我们另设的变量,flag=0,
//代表着上一个数组单元里是 空格。(方法)
}
}
}
printf("%d",cnt);
return 0;
}