c語言的切割
㈠ 關於c語言字元串中切割函數strtok的用法
strtok()函數並不像你想的那樣可以一次切割字串。需要多次循環,第二次時需要用 p = strtok(NULL, " "); 這樣的 形式。
void main()
{ char test1[] = "Hello C World";
char *p;
p = strtok(test1, " ");
while(p)
{
printf("%s\n", p);
p = strtok(NULL, " ");
}
return 0;
}
運行結果:
Hello
C
World
㈡ C語言怎麼把一串數字切割成幾個整數,例如輸入2016010906輸出2016-010-906
用sscanf,用%d讀取整數的時候指定讀幾位:
int a, b, c;
sscanf("2016010906", "%4d%3d%3d", &a, &b, &c);
printf("%04d-%03d-%03d\n", a, b, c);其中列印的%03d表示不夠3位就在前面補0。
㈢ 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;
}
(3)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語言中字元切割函數split的實現
#include<stdio.h>
#include<string.h>
//將str字元以spl分割,存於dst中,並返回子字元串數量
intsplit(chardst[][80],char*str,constchar*spl)
{
intn=0;
char*result=NULL;
result=strtok(str,spl);
while(result!=NULL)
{
strcpy(dst[n++],result);
result=strtok(NULL,spl);
}
returnn;
}
intmain()
{
charstr[]="whatisyouname?";
chardst[10][80];
intcnt=split(dst,str,"");
for(inti=0;i<cnt;i++)
puts(dst[i]);
return0;
}
㈤ 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]='