#define M 100
#define N 128
#include <stdio.h>
#include <string.h>
/*
设某字符串表示地区名称及地区代码, 将形如这样的字符串拆成相应的字符串,
例:
北京-010#上海-021#广州-020
按'#'拆成的字符串为3个,分别为
北京-010
上海-021
广州-020
*/
int splitStr(char *src, char *format, char (*substr)[N]){
char * begin;
char * pos;
int substrLen;
int formatLen = strlen(format);
int i;
for(i=0, begin=src; ( pos = (char*)strstr(begin, format) ) != NULL;){
substrLen = pos - begin;
strncpy(substr[i], begin,substrLen);
begin = pos + formatLen;
i++;
}
substrLen = strlen(begin);
if(substrLen > 0){
strncpy(substr[i], begin,substrLen);
i++;
}
return i;
}
int main(int argc, char *argv[])
{
char str[N];
gets(str);
char substr[M][N];
int i = splitStr(str,"#", substr);
printf("%d\n", i);
for(int j=0; j<i; j++){
puts(substr[j]);
}
return 0;
}
求把输出的结果变成
3
北京 010
上海 021
广州 020