當前位置:首頁 » 編程語言 » c語言分割字元串

c語言分割字元串

發布時間: 2022-01-17 17:19:21

c語言截斷字元串

//寫法很多,我提供一份源碼,僅供參考。
#include<stdio.h>
#include<string.h>

//字元串分割函數
intGetToken(char*pszSrc,char*pszSplit,char*pszDest)
{
intiPos;
char*pPtr=NULL;

pPtr=strstr(pszSrc,pszSplit);

if(pPtr)
{
iPos=strlen(pszSrc)-strlen(pPtr);
strncpy(pszDest,pszSrc,iPos);
strcpy(pszSrc,pPtr+strlen(pszSplit));
pszDest[iPos]='';
}
else
{
iPos=strlen(pszSrc);
strncpy(pszDest,pszSrc,iPos);
pszDest[iPos]='';
pszSrc[0]='';

return0;
}

return1;
}
intmain()
{
charszData[]="1234:01201407291000000001:abcdefgskskjdfskdjskfjsfsdjf";
charszFiled1[8];
charszFiled2[32];
charszFiled3[64];
GetToken(szData,":",szFiled1);
GetToken(szData,":",szFiled2);
GetToken(szData,":",szFiled3);
printf("Filed1=%s Filed2=%s Filed3=%s ",szFiled1,szFiled2,szFiled3);
return0;
}

希望能夠幫助到你,你的好評是我前進的動力。

⑵ C語言以逗號分割字元串

#include<iostream>

#include<vector>

#include<sstream>

usingnamespacestd;

intmain()

{

strings;

vector<int>v;

cin>>s;

//將讀入的字元串轉化成is流

istringstreamis(s);

intinter;

charch;

while(is>>inter)//只能讀出is流中的一個整形讀進inter

{

v.push_back(inter);

is>>ch;//然後讀一個字元型讀進ch

}

for(inti=0;i<v.size();i++)

cout<<v[i]<<"";

cout<<endl;

return0;

}

(2)c語言分割字元串擴展閱讀

C語言的字元串按照指定字元串分割操作

#include<stdio.h>

#pragmawarning(disable:4996)

#include<stdlib.h>

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語言如何分割字元串並將結果放入數組

如果是從輸入讀,那不用存字元串,直接存數組就好了
比如
scanf(「%d,%d....」,a,a+1,a+2...)
如果已經是字元串了,比如str,那麼用sscanf
比如sscanf(str,「%d,%d....」,a,a+1,a+2...)

⑷ 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 <stdio.h>
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<strlen(str);i++) if (str[i]==',') str[i]=' '; // 第2種方法--替換成空格分隔
sscanf(str,"%s %s %s %s",s[0],s[1],s[2],s[3]);
for (i=0;i<4;i++) printf("%s\n",s[i]);
return 0;
}

⑸ C語言拆分字元串

原始程序有錯

%s要求char*參數 但是*sp[i]為char型 應去掉*

代碼修改補充如下

#include<stdio.h>
#include<string.h>
voidsplitStr(char*s,char***d)
{
inti,n=3;
char*p,*p1;
char**r;
p=s;
while(*p)
if(*p++==',')n++;
r=malloc(sizeof(char*)*n);
p=p1=s;
i=0;
while(1)
{
if(*p==','||*p==0)
{
r[i]=malloc(p-p1+1);
memcpy(r[i],p1,p-p1);
r[i][p-p1]=0;
i++;
p1=p+1;
}
if(*p==0)break;
p++;

}
r[i]=NULL;

*d=r;
}
intmain()
{
char*str="123,abc,def";

char**sp;

splitStr(str,&sp);

printf("%s ",sp[0]);//這里不能有*

printf("%s ",sp[1]);
printf("%s ",sp[2]);
}

⑹ C語言字元串拆分

使用strstr函數嘛(以下代碼測試通過)
功能:在一個字元串中查找特定的字元串,如果查找到會返回查找到字元串的位置,失敗返回NULL
分析:搜索字元串"bizbox_userlang=",成功後取出'='後和『=』後第1個';'之間的所有字元

#include <stdio.h>
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語言怎麼把字元串按行分割

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語言如何分割字元串

可以寫一個分割函數,用於分割指令,比如cat a.c最後會被分割成cat和a.c兩個字元串、mv a.c b.c最後會被分割成mv和a.c和b.c三個字元串。

參考代碼如下:

#include<stdio.h>
#include<string.h>
#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;i<ct;i++)
printf("%s ",args[i]);
}

⑼ 請問,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 <stdio.h>
#include <string.h>

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語言實現分隔字元串

可以用split函數
原型是
strtok
這串字元就可以以
.
分割成
100
10
10
10
或者你可以自己寫的函數
來分割這個字元串

熱點內容
對蟻群演算法 發布:2024-12-26 11:15:53 瀏覽:807
tiobe編程語言社區 發布:2024-12-26 10:48:11 瀏覽:423
日立存儲微碼升級 發布:2024-12-26 10:43:48 瀏覽:152
如何建立家庭網站伺服器 發布:2024-12-26 10:40:46 瀏覽:185
安卓顯示e是什麼意思 發布:2024-12-26 10:35:13 瀏覽:705
電磁爐編程 發布:2024-12-26 10:30:51 瀏覽:97
經典福克斯壓縮比是多少 發布:2024-12-26 10:26:33 瀏覽:747
存取速度最快的存儲器是 發布:2024-12-26 10:17:39 瀏覽:66
我的世界伺服器只能邊跳邊走 發布:2024-12-26 09:55:26 瀏覽:464
銹湖綠色盒子密碼是什麼 發布:2024-12-26 09:53:16 瀏覽:205