當前位置:首頁 » 編程語言 » c語言分割字元串數組

c語言分割字元串數組

發布時間: 2022-07-08 04:00:15

1. c語言 寫一個把一個字元串分成若干個數組

void*Split(constchar*pString,intlength)
{
char*ptr=NULL;
introws;//一組等寬字元串可以看做二維數組的一行,定義行數
constchar*pSrc=pString;//取原地址作為源指針
char*pTag;//目標指針
//分割長度小於等於0,或指針無效時,返回空指針。
if(pString&&length>0)
{
intlen=strlen(pString);
intcols;//列數
rows=len/length;//字元串總長除以列數
if(len%length>0)rows++;//如果余數非0,則行數加一
ptr=newchar[rows*(length+1)];//創建足夠的空間
pTag=ptr;//初始化目標指針
while(*pSrc!='')//源指針指向的值如果有效則循環
{
cols=strlen(pSrc);//取原指針開始的字元串長度
if(cols>length)cols=length;//如果大於分割長度則修正,否則即為余數,就是最後一行的列數
memcpy(pTag,pSrc,cols);//復制
pTag+=length;//目標指針遞增一個列寬(行寬度)
*pTag='';//填寫結束符
pTag++;//增補一個地址
pSrc+=cols;//源指針遞增一個列寬(行寬度)
}
}
returnptr;
}

//主函數
int_tmain(intargc,_TCHAR*argv[])
{
char*str="abcdefghijklmn";
char(*p)[4];
p=(char(*)[4])Split(str,3);
cout<<p[1]<<endl;
getchar();
return0;
}

2. c語言,怎麼把這樣一個字元串"01111100"分割成數組

本來就可以把它當成數組呀, 數組長度是strlen("01111100") 也就是8 .
假如這個字元串的名叫str, 可能通過str[0] ...str[7] 來訪問這8個元素.

不知道你要問的是不是這個意思。

3. C語言讀取中間字元然後分割成數組

//下面定義的num數組空間只有100,根據情況來調整,保證夠用,或者動態分配內存。str是要輸入的字元串,可以從文件中讀入,下面主要是演示字元串的分隔轉換。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char *tmp, *pstr, str[] = "READ123|456|789**";//讀到的字元串
int num[100], len = 0;
char *token;
//校驗READ並跳過READ
pstr = strstr(str, "READ");
if (pstr != str)
{
printf("data error!");
return;
}
pstr += 4;
//校驗結尾的**並去掉後面的**
tmp = strstr(pstr, "**");
if (!tmp||strlen(tmp)!=2)
{
printf("data error!");
return;
}
*tmp = 0;
token = strtok(pstr, "|");
while (token)
{
num[len++] = atol(token);
token = strtok(NULL, "|");
}
//運行到這里,全部轉換並保存在num數組,有效長度為len的值。
for(int i=0; i<len; i++)
{
printf("num[%d]=%d\n", i, num[i]);
}
}

4. C語言有沒有把字元串拆分為數組的函數

直接用簡單的C++

#include<iostream>
#include<string>
#include<vector>
usingnamespacestd;

//把字元串s按照字元串c進行切分得到vector_v
vector<string>split(conststring&s,conststring&c){
vector<string>v;
intpos1=0,pos2;
while((pos2=s.find(c,pos1))!=-1){
v.push_back(s.substr(pos1,pos2-pos1));
pos1=pos2+c.size();
}
if(pos1!=s.length())
v.push_back(s.substr(pos1));
returnv;
}


intmain()
{
stringinput="張三$|男$|濟南$|大專學歷$|";
vector<string>myArray=split(input,"$|");
for(inti=0;i<myArray.size();i++){
cout<<myArray[i]<<endl;
}
}
/*
張三

濟南
大專學歷
*/

5. c語言如何把一串字元分成幾部分存入到不同數組中

char Name[100];
char Address[500];
char City[50];
char State[50];
scanf("%s %s %s %s",&Name,&Address,&City,&State);

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

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

7. c語言切割字元串存入數組

char b[]={0xaa,0xbb,0xcc,0xdd,0xee,0xff}; 首先你要知道你這么聲明一個字元串,0xaa而不是「0xaa」那麼b中的元素就會自動根據十六進制的值轉換成字元,就很有可能亂碼了。
要麼你想得到的是char b[][6]={"0xaa","0xbb","0xcc","0xdd","0xee","0xff"};
要麼就是int b[]={0xaa,0xbb,0xcc,0xdd,0xee,0xff}; 你上面想得到的字元數組是不對的。
如果是第一個,那很簡單
寫個循環,分割之後加上0x就行了。
如果想得到的是第二個
那麼就用第一個的結果中的字元串元素轉換成int就可以了。

8. C語言split分割字元串。

//以下解法的前提是,先把所有環變成1.無環路,2.一個環沒有扣住3個及以上的其他環
voidmain(){
intarray[16]={0};
//init,array[1]=xxx;根據輸入初始化數組,如1-2,則,array[1]=2,...
intHashArray[16]={0};
inthead,tail;
inthead_tmp,tail_tmp;
getNextList(array,HashArray,head,tail);

while(getNextList(array,HashArray,head_tmp,tail_tmp))
{
array[tail]=head_tmp;
tail=tail_tmp;
}
//此時的array數組裡面應該是一條鏈了
}

getNextList(intarray[],intHasharray,int&head,int&tail)
{
inthead_tmp=1;
while(Hasharray[head_tmp++]!=0);
if(head_tmp==16)
returnfalse;
else
{
head=tail=head_tmp-1;
while(array[tail]!=0)
{
Hasharray[tail]=1;
tail++;
}
Hasharray[tail]=1;
returntrue;
}
}

9. c語言如何分割字元串並將結果放入數組

如果是從輸入讀,那不用存字元串,直接存數組就好了
比如
scanf(「%d,%d....」,a,a+1,a+2...)
如果已經是字元串了,比如str,那麼用sscanf
比如sscanf(str,「%d,%d....」,a,a+1,a+2...)

10. C語言 拆分字元串 然後放進一個數組中 定義空間足夠大

是把字元串中的字元都放進數組中嗎?
char*
str
=
"Helloworld";
//原始字元串
char*
arr
=
new
char[strlen(str)];
//字元串數組
for(int
i=0;
i<strlen(str);
i++)
arr[i]
=
*str++;
現在你可以用下標訪問元素了,每一個元素就是原字元串中的字元。
這里的arr元素為{『H',
'e',
'l',
'l',
'o',
'w',
'o',
'r',
'l',
'd'}

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:235
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726