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

c語言分離字元串

發布時間: 2022-11-28 17:18:59

1. 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;
}

2. c語言:如何把字元串分解為一個個的字元

1.
不需要專門分割,c語言裡面本來就是用字元數組來保存的,如:char
a[20]="hello
world!";這個字元串,char[0]就是h,char[1]就是e。
2.
如果要分割子串,可以使用strtok函數。
char
*strtok(char
*s,
char
*delim);
分解字元串為一組字元串。s為要分解的字元串,delim為分隔符字元串。
首次調用時,s指向要分解的字元串,之後再次調用要把s設成null。
strtok在s中查找包含在delim中的字元並用null('')來替換,直到找遍整個字元串。

3. c語言如何從字元串數組中分離處單個字元

c語言的話,本質上來說是沒有字元串數組這概念,字元串數組就是單個字元串起來,就是說定義的時候已經分成單個字元,不用再去分離
例如,定義一個char *str = "asdf";那麼str[0],str[1],str[2],str[3]就會分別對應asdf
如果你是要分割char *str = "a,b,c,d",這種類型的字元串,你可以用strtok這個函數

4. 如何用c語言分離字元串中的字母和數字並分別輸出

給出代碼:
#include<iostream>

#include<cstdio>

#include<cstring>

#include<cctype>

usingnamespacestd;

intmain()

{

intnum,snum;

num=0;

snum=0;

chars[100];

charzi[100];

charfu[100];

scanf("%s",s);

for(inti=0;i<strlen(s);i++)

{

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

{

zi[num]=s[i];

num++;

}

elseif(s[i]<='z'&&s[i]>='a'||s[i]<='Z'&&s[i]>='A')

{

fu[snum]=s[i];

snum++;

}

}

for(inti=0;i<=num;i++)

{

printf("%c",zi[i]);

}

cout<<endl;

for(intj=0;j<=snum;j++)

{

printf("%c",fu[j]);

}

return0;

}

5. 如何用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中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

6. C語言字元串分割

char *strtok(char *str, const char *delim)
str -- 要被分解成一組小字元串的字元串。
delim -- 包含分隔符的 C 字元串。

int sscanf(const char *str, const char *format, ...)

char *strstr(const char *haystack, const char *needle)
haystack -- 要被檢索的 C 字元串。
needle -- 在 haystack 字元串內要搜索的小字元串。

7. 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;

8. 請問,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

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]='';/*addanullchar;makeaCstring*/
start=-1;
break;
case'':/*shouldbethefinalcharexamined*/
if(start!=-1){
args[ct]=&inputBuffer[start];
ct++;
}
inputBuffer[i]='';
args[ct]=NULL;/*nomoreargumentstothiscommand*/
break;
default:/*someothercharacter*/
if(start==-1)
start=i;
}
}
printf("分解之後的字元串為: ");
for(i=0;i<ct;i++)
printf("%s ",args[i]);
}

10. C語言 分離字元串中的字母、數字、符號

#include"stdio.h"
#include"string.h"
int main()
{
static int num[5],i=0;//
char str[25];
puts("enter a string :");
gets(str);
while(str[i])
{
if ('A' <= str[i] && str[i] <= 'Z')
num[0]++
else if ('a' <= str[i] && str[i] <= 'z')
num[1]++;
else if ('0' <= str[i] && str[i] <= '9')
num[2]++;
else if (str[i] == ' ')
num[3]++;
else
num[4]++;
i++;
}
printf("big: %d\n", num[0]);
printf("small: %d\n", num[1]);
printf("number: %d\n", num[2]);
printf("blank: %d\n", num[3]);
printf("other: %d\n",num[4]);
}