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]='