字符串

//HDU 2072
//这个字符串题目错了n多次,有种想哭的感觉,这里我对字符串做了预处理,就是在字符串尾部加一个空格' '最后别忘了在再加一个'',这样一来好处理一些
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #include<math.h> #include<algorithm> using namespace std; #define N 1100 int cmp(const void *t1, const void *t2) { char *t3=(char *)t1; char *t4=(char *)t2; return strcmp(t3, t4); } int main() { char str[500], s[N][100]; int i, k, j, flag, ans; while(gets(str)) { if(strcmp(str, "#")==0) break ; flag=0; int len=strlen(str); k=0; j=0; memset(s, 0, sizeof(s)); str[len]=' '; str[len+1]=''; for(i=0; i<=len; i++) { if(str[i]!=' ') { flag=1; s[k][j++]=str[i]; if(i==len-1) s[k][j]=''; } else if(str[i]==' '&&flag) { s[k][j]=''; flag=0; k++; j=0; } } if(k==0) { printf("0 "); continue ; } qsort(s, k, sizeof(s[0]), cmp); ans=1; for(i=1; i<k; i++) if(strcmp(s[i], s[i-1])!=0) ans++; printf("%d ", ans); } return 0; }
原文地址:https://www.cnblogs.com/9968jie/p/5416861.html