當前位置:首頁 » 編程語言 » c語言怎麼把字元串里的字元拆分
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼把字元串里的字元拆分

發布時間: 2022-10-24 07:43:06

㈠ 請問,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語言以逗號分割字元串

#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語言 字元串拆分

#include
"iostream.h"
int
abc(char
*str)
{
char
*a[20];
for(int
i
=
0;
i
<
20;
i
++)
a[i]
=
new
char[20];
a[0]
=
"this";
a[1]
=
"a";
a[2]
=
"one";
a[3]
=
"123";
a[4]
=
"張三";
a[5]
=
"黃六";
a[6]
=
"abc";
for(i
=
0;
i
<
7;
i
++)
cout
<<
a[i]
<<
",";
cout
<<
endl;
return
0;
//將字元串"this
a
one
123
張三
黃六與abc"
以空格標識或分解如
this
,a,one
,123.......存於數組a中
}
int
main()
{
abc("this
a
one
123
張三
黃六與abc");
return
0;
}

㈣ 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語言分離字元串中的字母和數字並分別輸出

把字元串存放到數組裡面,一個一個比對(循環)後輸出

判斷數字:

for (i=0;i<n;i++){

if ((p[i]>='0') && (p[i]<='9'))

printf();

判斷字母:

for (i=0;i<n;i++){

if ((p[i]>='a') && (p[i]<='Z'))

printf();

(5)c語言怎麼把字元串里的字元拆分擴展閱讀:

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

㈥ 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語言怎麼把一個字元串分成兩個字元串

1)簡單來,直接用 strcat 函數,需要包含頭文件 string.h
2)自己實現的話也不麻煩,但是要考慮一些細節:
假設兩個字元串指針為 str1,str2 ,現在要講 str1 和 str2 連接成一個新的字元串。
a.考慮指針 str1,str2 是否非空
b.如果將str2的內容直接連接到str1的末尾,要考慮str1是否有足夠的剩餘空間來放置連接上的str2的內容。
如果用一個新的內存空間來保存str1和str2的連接結果,需要動態分配內存空間。

㈧ 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語言中字元串一分為二要怎麼編寫

可以用strtok函數,按標志把字元串分開
#include
<string.h>
#include
<stdio.h>
char
string[]
=
"A
string\tof,tokens\nand
some
more
tokens";
char
seps[]
=
"
,\t\n";
//拆分的標志為
空格,逗號,\t,\n
char
*token;
void
main(
void
)
{
printf(
"%s\n\nTokens:\n",
string
);
/*
Establish
string
and
get
the
first
token:
*/
token
=
strtok(
string,
seps
);
while(
token
!=
NULL
)
{
/*
While
there
are
tokens
in
"string"
*/
printf(
"
%s\n",
token
);
/*
Get
next
token:
*/
token
=
strtok(
NULL,
seps
);
}
}

㈩ c語言如何將一個字元串拆分

在要拆分的地方增加一個「\0」,因為字元串以\0結束