char buffer[80];
strcpy(buffer,"12345678890@qwerrtty@jdljfijfsdk");
我想以@为间隔分离出字符串,怎么做?如果我想取buffer中前5个字符组成的字串,该怎么做?谢谢!
strcpy(buffer,"12345678890@qwerrtty@jdljfijfsdk");
我想以@为间隔分离出字符串,怎么做?如果我想取buffer中前5个字符组成的字串,该怎么做?谢谢!
调试欢乐多
char *strtok( char *strToken, const char *strDelimit );char buffer2[80];
strncpy(buffer2,buffer,5);
我定义char buffer2[40];
buffer2=strtok( strToken, strDelimit);这样不对,提示char* 不能转化为char[],他们怎么转化?
{
char *buf;
char *p;
int i = 0;
buf = strdup(str_in);
p = buf;
p++;
str_out[i++] = p;
while(*p++ != '\0'){
if(*p == flag){
*p = '\0';
str_out[i++] = ++p;
}
}
return i;
/*****************使用方法
char *r[32];
memset(r,0,sizeof(r));
Devide_Str("12345678890@qwerrtty@jdljfijfsdk",r,'@');
........
free(r[0]-1);
**************************/
}
char str2[50];
char str3[50];
sscanf(buffer, "%s@%s@%s@%s", str1, str2, str3);
呵呵,这样就能提取出来了
取前面五个字符串用memcpy或者strncpy都可以
char buffer[80];
strcpy(buffer,"12345678890@qwerrtty@jdljfijfsdk");strToken = strtok(buffer, "@");
char *strToken;
char buffer[100];
strcpy(buffer,"12345678890@qwerrtty@jdljfijfsdk");strToken = strtok(buffer, strDelimit);
以下用strToken = strtok(NULL, strDelimit);