这里介绍分割字符串两种方法
一、调用<string.h>函数库中的“strtok”函数分割字符型串。
定义: char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串,delim 为分隔符。
#include <string.h>
#include <stdio.h>
int main () {
char str[80] = "This is - www.runoob.com - website";
const char s[2] = "-";
char *token;
/* 获取第一个子字符串 */
token = strtok(str, s);
/* 继续获取其他的子字符串 */
while( token != NULL ) {
printf( "%s\n", token );
token = strtok(NULL, s);
}
return(0);
}
输出结果是:
This is
www.runoob.com
website
参考:https://www.runoob.com/cprogramming/c-function-strtok.htm
二、就是遍历字符串,去找关键字符,关键字符之间的数据另存到另一个数组中
#include <stdio.h>
#include <string.h>
int main(void){
char str[80]={"hesf,sgf,rg,srgdrg,sg*"};
char buff[20]={0};
const char a=',';
int i=0,j=0,k=0;
for(i=0;i<strlen(str);i++){
if(str[i]==a || str[i]=='*'){ //这里用的是 “,”和“*”作为分隔符
k=0;
for(j=0;j<strlen(buff);j++){
printf("%c",buff[j]);//在这里将分割出来的子字符串另存
}
memset(buff,0,20);
printf("\n");
}else{
buff[k]=str[i];
k++;
}
}
}
输出的结果如下:
hesf
sgf
rg
srgdrg
sg