本程序不能直接作为一个应用程序使用,只是一个函数实现,当然为了大家方便调试,我还是加了一个测试的例子。
int getword(char *p,char c,int num,char *sub) { char *a; int i=-1; char *s; s=strdup(p); clear_space(s,c); if((a=s)==NULL||*s==0) return 1; while(1) { if(*s==c) { i++; *s='\0'; if(num==i) {strcpy(sub,a);return 0;} a=s+1; } ++s; if(*s=='\0') { i++; if(num==i) {strcpy(sub,a);return 0;} //printf("%s\n",a);
break; } } return 1; } void clear_space(char *s,char c) { int i,j,k; j=strlen(s); for(i=0;i<j;i++) { if(*(s+i)==*(s+i+1)&&*(s+i)==c) { for(k=i+1;k<j;k++) { *(s+k)=*(s+k+1); } j--; i--; } } if(*(s+strlen(s)-1)==c) *(s+strlen(s)-1)='\0'; if(*s==c) for(i=0;i<strlen(s);i++) *(s+i)=*(s+i+1); }
|
下面是一个调用上面函数的一个小例子:
#include <stdio.h> #include <string.h> #include <stdlib.h> int getword(char *s,char c,int num,char *sub); void clear_space(char *s,char c); int main() { char *s=malloc(100); char *a; char d; char *sub=malloc(100); int num; strcpy(s," I am a student! Born to win LTW"); printf("%s\n",s); d=' ';//delim
while(1) { printf("Input the num of word:"); fflush(stdin); scanf("%d",&num); num=getword(s,d,num,sub); if(num==0) printf("%s\n",sub); else { printf("num is wrong\n"); return -1; } } free(s); free(sub); return 1; }
|
阅读(7096) | 评论(0) | 转发(2) |