求助截取字符串的问题??
原字符串格式如下 ,考虑效率问题
str1= "A:B:C:D:E "
要求输出
ch1 = "A "
ch2 = "B "
ch3 = "C "
ch4 = "D "
ch5 = "E "
[解决办法]
int main()
{
char str1[] = "A:B:C:D:E ";
char *token = strtok( str1, ": " );
while( token != NULL )
{
printf( " %s\n ", token );
token = strtok( NULL, ": " );
}
return 0;
}
[解决办法]
sscanf(str1, "%c:%c:%c:%c:%c ", &ch1, &ch2, &ch3, &ch4, &ch5);
[解决办法]
------------------------------
char str1[]= "A:B:C:D:E ";
char *s = str1;
register char *p = str1, c;
s = p = str1;
do {
c = *p++;
if(c == ': ') {
*(p-1) = 0;
puts(s);
s = p;
}
}while( c );
------------------------------
char str1[]= "A:B:C:D:E ";
register char *p = str1, c;
while( c = *p++ ) {
switch(c) {
default: putchar(c); continue;
case ': ': putchar( '\n '); break;
}
}
------------------------------
char str1[]= "A:B:C:D:E ";
register char *p=str1, *s = str1 + strlen(str1);
while(p <= s--) {
if(*s == ': ') {
*s = 0;
put(s+1);
}
}
------------------------------
[解决办法]
好像最后那个还可以.....