1. 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;
}
2. 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();
}
3. C语言分割字符串
使用strtok函数即可实现分割字符串。
1、strtok函数:
原型:char *strtok(char s[], const char *delim);
功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;
说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针;
头文件:string.h;
返回值:从字符串s开头开始的一个个被分割的字符串。分割结束时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
2、例程:
#include<stdio.h>
#include<string.h>
intmain(){
charinput[16]="abc,d,ef,g";//待分解字符串
char*delim=",";//分隔符字符串
char*p=strtok(input,delim);//第一次调用strtok
while(p!=NULL){//当返回值不为NULL时,继续循环
printf("%s ",p);//输出分解的字符串
p=strtok(NULL,delim);//继续调用strtok,分解剩下的字符串
}
return0;
}
4. C语言输入一串字符串从第n个字符开始截取m个字符组成一个新的字符串输出。
1、我们编辑如图中输入的代码。
5. 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;
}
6. C语言中如何截取字符串的前几个字符
自写的字符串截取程序,不懂可以继续问
系统里的截取前n个字符是strncpy
#include
<stdio.h>
#include
<stdlib.h>
char
*mystrncpy(const
char
*string,int
n){//要求截取的字符串不可以改变,但指向字符串的指针可以改变
char
*p=string;
if(p==NULL){//如果截取的字符串是空的直接返回
return
NULL;
}else{
int
i=0;
while(*p!='\0'){//循环直到达n个字符串终止
if(i==n){
break;
}
i++;
p++;
}
*(p++)='\0';//赋值结束字符串
return
string;
}
}
int
main()
{
char
str[50]="hello
world";
printf("%s\n",mystrncpy(str,3));
printf("Hello
world!\n");
return
0;
}
7. c语言中获取字符串前两位的函数
可以使用strncpy()来将复制字符串中前n个字符。比如:
char str1[] = "this is a string";
char str2[3];
strncpy(str2, str1, 2);
str2[2] = '\0'; // 此时str2="th"
8. C语言中如何截取字符串的前几个字符
自写的字符串截取程序,不懂可以继续问
系统里的截取前n个字符是strncpy
#include <stdio.h>
#include <stdlib.h>
char *mystrncpy(const char *string,int n){//要求截取的字符串不可以改变,但指向字符串的指针可以改变
char *p=string;
if(p==NULL){//如果截取的字符串是空的直接返回
return NULL;
}else{
int i=0;
while(*p!='\0'){//循环直到达n个字符串终止
if(i==n){
break;
}
i++;
p++;
}
*(p++)='\0';//赋值结束字符串
return string;
}
}
int main()
{
char str[50]="hello world";
printf("%s\n",mystrncpy(str,3));
printf("Hello world!\n");
return 0;
}
9. 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]='