单词倒排
单词倒排(一)
#include<stdio.h> #include<string.h> int main() { int i,j; char a[20][20]={0},b[1][20]={0};//字符数组创建时就立即初始化为全0(即ASCI值0---对应字符'\0') for(i=0;i<20;i++) { int flag=0; for(j=0;;)//一个字符串的输入 { char C=getchar(); if(C=='\n') { flag=1; break; }//遇到换行时停止输入,跳出双重循环 if(C!=',' &&C!='.' &&C!=' ') { a[i][j]=C; j++; } else break;//遇到标点和空格就停止输入一个字符串 } if(flag==1) break; } int count=0;//统计单词个数 while(a[count][0]!='\0') count++; //printf("%d\n",count);//用于调试 for(i=0,j=count-1;j>i;i++,j--)//交换行 { strcpy(b[0],a[j]); strcpy(a[j],a[i]); strcpy(a[i],b[0]); }; for(i=0;i<20;i++)//输出字符串 { for(j=0;j<20 &&a[i][j]!='\0';j++) printf("%c",a[i][j]); if(a[i][0]=='\0') break; printf(" "); }; printf("\n"); return 0; }
单词倒排(二)
#include<stdio.h> int main() { int i,j; int word=0,num=0;//新单词标记,单词下标 char str[100],s[50][20]={0},c; gets(str);//输入字符串(多个单词) for(i=0;(c=str[i])!='\0';i++)//遍历字符串,拆分成多个单词,存入s[][]中 { if(c==' '||c==','||c=='.')//遇到标点,说明新开始一个单词,用word标记为0 word=0; else { if(word==0)//新开始一个单词 { j=0;//单词中字符下标 num++;//单词下标(第几个单词)---从1开始 word=1; } s[num][j]=c;// j++; } } for(i=num;i>0;i--) printf("%s ",s[i]); printf("\n"); return 0; }
posted on 2012-11-02 09:54 IThinktan 阅读(1485) 评论(0) 编辑 收藏 举报