- 608 名前:606 mailto:sage [2008/05/11(日) 23:35:17 ]
- すいません、書き込んだ後、インデントがされてないのに気がついつきました。同じソースですが
int main(void) { char src_str[]="str1 str2 str3 str4 str5"; char *next; char *buff=src_str; while((next=strsplit(buff, " "))!=NULL){ // 空白文字が2個以上続いた場合はbuffにはナル文字が入っている if(buff[0] != '\0') fprintf(stderr, "buff=%s, next=%s\n",buff, next); buff=next; } return 0; } // 文字列をdelimstrを区切り文字列として分割し、区切後の文字列へのポインタを返す char *strsplit(char* str,const char* delim_str) { char* delim_point = strstr(str,delim_str); const size_t delim_len = strlen(delim_str); size_t i; if(delim_point == NULL) return NULL; else { *delim_point = '\0'; for(i=0;i<delim_len;i++) delim_point++; } return delim_point; }
|

|