c語言字元串分割-九游会j9娱乐平台
① c語言字元串拆分
使用strstr函數嘛(以下代碼測試通過)
功能:在一個字元串中查找特定的字元串,如果查找到會返回查找到字元串的位置,失敗返回null
分析:搜索字元串"bizbox_userlang=",成功後取出'='後和『=』後第1個';'之間的所有字元
#include
int main(int argc, char* argv[])
{
char buf1[]="bizbox_username=admin; bizbox_userpass=; bizstore_note=; bizbox_userlang=zh; csd=33; cod=29.30; business_note=null";
char *buf2="bizbox_userlang=";
char *ptr;
char txt[100];
ptr=strstr(buf1,buf2); //成功返回的位置是"bizbox_userlang=zh; csd=33...."
if( ptr==null)
{
printf("沒有找到該內容\n");
return -1;
② c語言如何分割字元串
可以寫一個分割函數,用於分割指令,比如cat a.c最後會被分割成cat和a.c兩個字元串、mv a.c b.c最後會被分割成mv和a.c和b.c三個字元串。
參考代碼如下:
#include
#include
#definemax_len128
voidmain()
{
inti,length,ct=0,start=-1;
charinputbuffer[max_len],*args[max_len];
strcpy(inputbuffer,"mva.cb.c");
length=strlen(inputbuffer);
for(i=0;i<=length;i ){
switch(inputbuffer[i]){
case'':
case' ':/*argumentseparators*/
if(start!=-1){
args[ct]=&inputbuffer[start];/*setuppointer*/
ct ;
}
inputbuffer[i]='';/*addanullchar;makeacstring*/
start=-1;
break;
case'':/*shouldbethefinalcharexamined*/
if(start!=-1){
args[ct]=&inputbuffer[start];
ct ;
}
inputbuffer[i]='';
args[ct]=null;/*nomoreargumentstothiscommand*/
break;
default:/*someothercharacter*/
if(start==-1)
start=i;
}
}
printf("分解之後的字元串為: ");
for(i=0;iprintf("%s ",args[i]);
}
③ c語言以逗號分割字元串
#include
#include
#include
usingnamespacestd;
intmain()
{
strings;
vector
cin>>s;
//將讀入的字元串轉化成is流
istringstreamis(s);
intinter;
charch;
while(is>>inter)//只能讀出is流中的一個整形讀進inter
{
v.push_back(inter);
is>>ch;//然後讀一個字元型讀進ch
}
for(inti=0;i
cout<
cout<
return0;
}
(3)c語言字元串分割擴展閱讀
c語言的字元串按照指定字元串分割操作
#include
#pragmawarning(disable:4996)
#include
intmain()
{
charstr[]="我,是,中國,程序員";
char*ptr;
char*p;
printf("開始前:str=%s ",str);
printf("開始分割: ");
ptr=strtok(str,",");
while(ptr!=null){
printf("ptr=%s ",ptr);
ptr=strtok(null,",");
}
getchar();
}
④ c語言實現分隔字元串
可以用split函數
原型是
strtok
這串字元就可以以
.
分割成
100
10
10
10
或者你可以自己寫的函數
來分割這個字元串
⑤ 請問,c語言中,對帶分隔符的字元串如何分割
c/c 中的split函數是strtok()其函數原型如下:
char * strtok (char * str, const char * delimiters);
函數說明
strtok()用來將字元串分割成一個個片段。參數str指向欲分割的字元串,參數delimiters則為分割字元串,當strtok()在參數str的字元串中發現到參數delimiters的分割字元時則會將該字元改為'\0'字元。在第一次調用時,strtok()必需給予參數str字元串,往後的調用則將參數str設置成null。每次調用成功則返回下一個分割後的字元串指針。
返回值
返回下一個分割後的字元串指針,如果已無從分割則返回null。
示例-1
/* strtok example */
#include
#include
int main ()
{
char str[] ="a,b,c,d*e";
const char * split = ",";
char * p;
p = strtok (str,split);
while(p!=null) {
printf ("%s\n",p);
p = strtok(null,split);
}
getchar();
return 0;
}
本例中,實現對字元串'a,b,c,d*e"用逗號(,)來作界定符對字元串進行分割。
輸出結果將如下所示:
a
b
c
d*e
因為delimiters支持多個分割符, 我們將本示例中的語句行
const char * split = ",";
改成 const char * split = ",*"; //用逗號(,)和星號(*)對字元串進行分割
這樣輸出結果將如下所示:
a
b
c
d
e
⑥ c語言中 如何分割字元串
c語言中沒有 string class, 假定你指 char 字元串。
用 sscanf 方法可以分割。
char str2[]="aa 123,bb 456,cc 789,dd 000";
按逗號分割為4 部分:
aa 123
bb 456
cc 789
dd 000
-----------------
char str[]="aa,bb,cc,dd";
按逗號分割為4 部分:
aa
bb
cc
dd
-------------------------
#include
main()
{
char str[]="aa,bb,cc,dd";
char str2[]="aa 123,bb 456,cc 789,dd 000";
char s[4][10];
int i;
sscanf(str,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1種方法
for (i=0;i<4;i ) printf("%s\n",s[i]);
sscanf(str2,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1種方法
for (i=0;i<4;i ) printf("%s\n",s[i]);
//-----------
for (i=0;i
for (i=0;i<4;i ) printf("%s\n",s[i]);
return 0;
}
⑦ c語言 字元串拆分
#include "iostream.h"
int abc(char *str)
{
char *a[20];
for(int i = 0; i < 20; i )
a[i] = new char[20];
a[0] = "this";
a[1] = "a";
a[2] = "one";
a[3] = "123";
a[4] = "張三";
a[5] = "黃六";
a[6] = "abc";
for(i = 0; i < 7; i )
cout << a[i] << ",";
cout << endl;
return 0;
//將字元串"this a one 123 張三 黃六與abc" 以空格標識或分解如 this ,a,one ,123.......存於數組a中
}
int main()
{
abc("this a one 123 張三 黃六與abc");
return 0;
}
⑧ c語言split分割字元串。
//以下解法的前提是,先把所有環變成1.無環路,2.一個環沒有扣住3個及以上的其他環
voidmain(){
intarray[16]={0};
//init,array[1]=xxx;根據輸入初始化數組,如1-2,則,array[1]=2,...
inthasharray[16]={0};
inthead,tail;
inthead_tmp,tail_tmp;
getnextlist(array,hasharray,head,tail);
while(getnextlist(array,hasharray,head_tmp,tail_tmp))
{
array[tail]=head_tmp;
tail=tail_tmp;
}
//此時的array數組裡面應該是一條鏈了
}
getnextlist(intarray[],inthasharray,int&head,int&tail)
{
inthead_tmp=1;
while(hasharray[head_tmp ]!=0);
if(head_tmp==16)
returnfalse;
else
{
head=tail=head_tmp-1;
while(array[tail]!=0)
{
hasharray[tail]=1;
tail ;
}
hasharray[tail]=1;
returntrue;
}
}
⑨ c語言怎麼把字元串按行分割
int split(char dst[][80], char* str, const char* spl)
{
int n = 0;
char *result = null;
result = strtok(str, spl);
while( result != null )
{
strcpy(dst[n ], result);
result = strtok(null, spl);
}
return n;
}
int _tmain(int argc, _tchar* argv[])
{
char str[] = "123,456 789,321";
char dst[10][80];
int cnt = split(dst, str, " ");
for (int i = 0; i < cnt; i )
puts(dst[i]);
return 0;
}
主要是字元串分割函數strtok的使用
⑩ 用c語言分割字元串
char szportsmessage[]="0,1,4,6,7;-1062708991|0,3,4,5,7;-1062708992|";
char delims_switchs[] = "|";
char *result_switchs = null;
result_switchs = strtok(szportsmessage,delims_switchs);
while(result_switchs != null) {
printf( "result_switchs is \"%s\"\n",result_switchs);
char* tmp = result_switchs; ---------加一行,tmp=分割後的第一個字元串
result_switchs = strtok(null,delims_switchs); result_switchs 已經等於分割後的第二個字元串了
char swinfo[100];
strcpy(swinfo,tmp); ------------------換成tmp
char delims_switch[] = ";";
char *result_switch = null;
result_switch = strtok(swinfo,delims_switch);
while(result_switch != null) {
printf( "result_switch is \"%s\"\n",result_switch);
result_switch = strtok(null,delims_switch);
}
}