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