当前位置:首页 » 编程语言 » 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 浏览:237
java驼峰 发布:2025-02-02 09:13:26 浏览:652
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:538
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726