C语言有没有把字符串拆分为数组的函数?

作者&投稿:崇姜 (若有异议请与网页底部的电邮联系)
c语言怎么把一个字符数组分成多个数组?~

可以使用strtok函数把一个字符数组分解成多个字符数组。
1、strtok函数:原型:char *strtok(char s[], const char *delim);功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针;头文件:string.h;返回值:从字符串s开头开始的一个个被分割的字符串。分割结束时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。2、例程:
#include#includeint main(){ char input[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,分解剩下的字符串 } return 0;}

以下是对php中的数组与字符串的转换函数进行了详细的整理汇总,需要的朋友可以参考下



1.将一个字符串转化为数组
str_split()用于将一个字符串转化为数组
语法:

复制代码
代码如下:


str_split(string,length)
<SPAN
style="COLOR: #333333"><SPAN
style="FONT-FAMILY:
宋体">//string是必须的,是要分割的字符串;<SPAN
style="FONT-SIZE: 12px"><SPAN style="FONT-FAMILY: 宋体; COLOR:
#333333"><SPAN style="LINE-HEIGHT:
28px">
//length是可选的,规定每个数组元素的长度



tips:
如果 length 小于 1,str_split() 函数将返回
false。
如果 length 大于字符串的长度,整个字符串将作为数组的唯一元素返回。
例子:

复制代码
代码如下:


<?php
$str="www.baidu.com";
print_r(str_split($str));
?>


2.字符串分割函数
explode()
函数把字符串分割为数组。
语法:
explode(separator,string,limit)
//separator是必须的,规定了分割分割字符串的依据,例如:“
”(空格) “|”
“,”等
//string是必须的,是所要操作的字符串
//limit是可选的,规定所返回的数组元素的最大数目。
例子:

复制代码
代码如下:


<?php
$types="doc|docx|ppt|pptx|xls|xlsx|zip|rar";
print_r(explode("|",$types));
?>


3.将一个数组转化为字符串
使用implode()
函数把数组元素组合为一个字符串
语法:

复制代码
代码如下:


implode(separator,array)//seperator是可选的,规定数组元素之间放置的内容,默认是“”(空字符串)
//array是必须的,是要结合成字符串的数组

tips:虽然
separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。implode()
可以接收两种参数顺序。但是由于历史原因,explode() 是不行的。你必须保证
separator 参数在
string 参数之前才行。例子:<PRE class=php
name="code"><?php
$arr =
array('Hello','World!','Beautiful','Day!');
echo implode("
",$arr);
?>



4.在字符串种中查找另外一个字符
使用strpos()或strstr()函数
strpos()
函数返回字符串在另一个字符串中第一次出现的位置。
如果没有找到该字符串,则返回 false。
语法:

复制代码
代码如下:


strpos(string,find,start)
//string为必须,表示被搜索的字符串
//find为必须,表示被查找的字符串
//start可选。规定开始搜索的位置。


tip:
该函数对大小写敏感
例子:

复制代码
代码如下:


<?php
$str="HellO
neo";
$find1="O";
$find2="o";
echo strpos($str,$find1);
echo
"";
echo
strpos($str,$find2);
?>


输出结果:

复制代码
代码如下:


4
8


5.截取字符串中的部分字符
substr()
函数返回字符串的一部分
语法:

复制代码
代码如下:


substr(string,start,length)
//string为必需,规定要返回其中一部分的字符串。
/*必需。规定在字符串的何处开始。

正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾的指定位置开始
0 -
在字符串中的第一个字符处开始
*/
/*可选。规定要返回的字符串长度。默认是直到字符串的结尾。
正数 - 从 start
参数所在的位置返回
负数 - 从字符串末端返回
*/


tips:
如果 start 是负数且 length 小于等于
start,则 length 为 0。
例子;

复制代码
代码如下:


<?php
$str="Hello world!";
echo
substr($str,0);
echo "";
echo
substr($str,6,5);
?>


6.获取字符串长度
strlen()
函数用于计算字符串的长度。
例子:

复制代码
代码如下:


<?php
$str="Hello world!";
echo
strlen($str);
?>
//输出结果为12


7.将字符串转化为大写
strtoupper()
函数把字符串转换为大写。
例子:

复制代码
代码如下:


<?php
$str="Hello world!";
echo
strtoupper($str);
?>
//输出结果为:HELLO WORLD!


8.将字符串转化为小写
strtolower()
函数把字符串转换为小写。
例子:

复制代码
代码如下:


<?php
$str="Hello World!";
echo
strtolower($str);
?>

用strtok函数实现吧。
void split( char **arr, char *str, const char *del)//字符分割函数的简单定义和实现
{
char *s =NULL;

s=strtok(str,del);
while(s != NULL)
{
*arr++ = s;
s = strtok(NULL,del);
}
}

int main()
{
int i;
char *myArray[4];
char s[] = "张三$|男$|济南$|大专学历$|";

memset(myArray, 0x0, sizeof(myArray));
split(myArray, s, "$|");

for (i=0; i<4; i++)
{
printf("%s\n", myArray[i]);
}
return 0;
}


c语言字符串函数有哪些
void fun (char s1[],char s2[]){ int i,j;for (i=0;s1[i] !=’\\0’; i++); \/*求出的i为pA字符的总长度,包括结束标记位*\/ for (j=0;s2[j] !=’\\0’; j++)s1[i++]=s2[j]; \/*将pB字符串连在pA字符串的后面*\/ s1[i]='\\0’; \/*在字符串最后加上结束标记符*...

为什么C语言字符类型和字符串类型不能相互转换?
4.字符常量赋予一个字符变量,但是不能将一个字符串常量赋予一个字符变量,在C语言中没有 相应的字符串变量,但是可以用一个字符数组来存放一个字符串常量:如:char [] s = "abcde";5.字符常量栈一个字节的内存空间,字符串常量的内存字节数等于字符串字节数加1,增加的一 个自己中存放字符...

c++,c语言把一个字符串复制到另外一个字符串中。我不明白为什么要在复制...
因为str2[80]没有初始化的时候。编译器默认分配的字符,就是那些乱码 烫~~~输出puts函数是遇到'\0'结束符就结束字符串的输出,没有结束符标志自然全部输出,会有乱码 如果你不进行str2[i] = '\\0';赋值的话。那你在最开始 str2[80]要进行初始化 str2[80]=0;这样就一样的效果。有问...

字符串类型有哪些?
字符串由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。补充:字符串在存储上类似字符数组,它每一位单个元素都...

c语言如何声明字符串
C语言中没有字符串类型的变量。他只有字符变量类型char,所以字符串用变通的方式来表示。第一是字符数组来表示字符串。用下面的语句声明:char a[10];C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符'\\0',而字符数组不需要。如刚才声明的a[10]是一个含有10个元素的字符...

c语言怎么把二维数组的字符串给到一维数组?
如一维数组为a,二维数组为b,基础类型为TYPE,需赋值元素个数为n,可以调用memcpy(b,a,sizeof(TYPE)*n);该方法有点为操作简单,执行效率高。不过所需满足的前提条件多。在满足上述所有条件时,用memcpy的方式更为简单。个就是apply的一个巧妙的用处,可以将一个数组默认的转换为一个参数列表([param...

为什么C语言没有String类型?
C语言没有String类型,但是C语言提供了字符串常量。C语言中字符串的概念:以 NUL 字节结尾的零个或多个字符,字符串通常储存在字符数组中 当一个字符串常量出现在一个表达式中时,表达式所使用的值就是这些字符所存储的地址,因此可以把字符串常量赋值给一个“指向字符的指针”。

C语言中字符串小于字符串吗?
2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ASCII码值)。(负值前字符串的值小于后字符串,正值前字符串大于后字符串)3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,...

C语言中怎样把输入的字符串赋给数组
\/\/基本实现你要的功能,用到了内存的动态开辟#include <stdio.h> include <stdlib.h> void main(){ char** pArrStr;\/\/用来保存字符串数组 int strLen;\/\/用来保存字符串长度 int i; printf("请输入字符数组的个数:");scanf("%d",&strLen);pArrStr=(char**)malloc(sizeof(char*)*strLen)...

c语言本身没有提供对字符串进行整体操作的运算符什么意思
C语言没有相应运算符,只提供了一些函数来处理字符串 在C++语言中,提供了string类,这个类中对+算符进行了重载,可以对字符串进行拼接

隆德县19569032992: C语言有没有把字符串拆分为数组的函数? -
岳供蒲地: 用strtok函数实现吧.void split( char **arr, char *str, const char *del)//字符分割函数的简单定义和实现 { char *s =NULL;s=strtok(str,del); while(s != NULL) { *arr++ = s; s = strtok(NULL,del); } } int main() { int i; char *myArray[4]; char s[] = "张三$|男$|...

隆德县19569032992: C语言函数字符串截取分割 -
岳供蒲地: C标准库中提供了一个字符串分割函数strtok(); 实现代码如下: #include <stdio.h> #include <string.h> #define MAXSIZE 1024 int main(int argc, char * argv[]) {char dates[MAXSIZE] = "$GPGGA,045950.00,A,3958.46258,N,11620.55662,E,0....

隆德县19569032992: C语言 写一个把一个字符串分成若干个数组 -
岳供蒲地: #include char **lengthSplit(const char *s, int n,int *m) { int i,j; char **lens; if(strlen(s)%n == 0) *m = strlen(s)/n; else *m = strlen(s)/n + 1; lens = (char **)malloc(*m); for(i = 0; ilens[i] = (char *)malloc(n + 1);for(i = 0; ifor(j = 0; jlens[i][j] = s[j + i * n]; lens[i]...

隆德县19569032992: 怎么样把一个字符串分割成单个字符数组 -
岳供蒲地: 不需要专门分割,C语言里面本来就是抄用字符数组来保存的,如:袭char a[20]="Hello world!";这个字符串,char[0]就是H,char[1]就是e. 如果要分割子串,可以使用strtok函数. char *strtok(char *s, char *delim); 分解2113字符串为一组字符串.s为要分解的字符串,delim为分隔5261符字符串. 首次调用时,s指向要分解的字符串,之后再次调用要把s设成4102NULL. strtok在1653s中查找包含在delim中的字符并用NULL('')来替换,直到找遍整个字符串.

隆德县19569032992: c语言,怎么把这样一个字符串"01111100"分割成数组 -
岳供蒲地: 本来就可以把它当成数组呀, 数组长度是strlen("01111100") 也就是8 .假如这个字符串的名叫str, 可能通过str[0] ...str[7] 来访问这8个元素.不知道你要问的是不是这个意思.

隆德县19569032992: c语言自己编写一个split字符串分割函数 -
岳供蒲地: 这个是用c++写的不过和c的原理也差不多我运行过了,有什么问题再问吧,c不知道能否运行,不过现在c/c++程序设计试验系统通常都有嵌套c++,你打开c界面时单击vc6.0创建一个项目运行就可以了.#include <iostream> using namespace std;...

隆德县19569032992: C语言如何实现分割字符串为一个个单独的字符并保存 -
岳供蒲地: 太简单了,C语言里面本来就是用字符数组来保存的,如:char a[20]="Hello world!"这样的话,其实本来就是分开的,char[0]就是H,char[1]就是e ,....都是这样的

隆德县19569032992: 如何把一个字符串分割成一个数组!我忘了方法 55 -
岳供蒲地: JAVA: char[] ch = str.toCharArray(); C#: char[] ch = str.ToCharArray();

隆德县19569032992: c语言:如何把字符串分解为一个个的字符? -
岳供蒲地: 直接从字符数组中提取就可以啦!例如:char a[10]="abcd";那么,从a[0]到a[3]分别是'a','b','c','d'四个字符.

隆德县19569032992: C语言里有没有字符串组成的数组? -
岳供蒲地: C语言字符串的本质是:以0值结尾的一块内存,用这块内存的首地址来代表这块内存 那就可以用一些char指针指向字符串所在内存的首地址,然后把这些char指针放到一个数组里#include <stdio.h> int main() { char* ss[3]; //这个数组的元素是char指针(char*) int i; ss[0]="abcdefg"; //ss[0]指向保存"abcdefg"这个字符串的内存的首地址 ss[1]="1234567"; ss[2]="@#$%^&*"; for(i=0;i<3;i++) { printf("%s\n",ss[i]); } return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网