
正文
c语言字符串转数组函数 c语言字符串转数组的方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言有没有把字符串拆分为数组的函数?
用strtok函数实现吧。
void split( char **arr, char *str, const char *del)//字符分割函数c语言字符串转数组函数的简单定义和实现
{
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; i4; i++)
{
printf("%s\n", myArray[i]);
}
return 0;
}
相关问答
Q1: 标准C语言中如何将字符串中的内容转换为字符数组?
c语言中没有字符串类型c语言字符串转数组函数的变量c语言字符串转数组函数,用字符指针表示字符串c语言字符串转数组函数,char *p = “hello”
可以直接使用数组下表访问字符串中c语言字符串转数组函数的字符c语言字符串转数组函数,例如 p[0]='h',p[1]='e',但最后一个字符p[5]='\0';
Q2: C++怎么把string 转换为char型数组
1、如果要将string转换为char*,可以使用string提供的函数c_str() ,或是函数data(),data除了返回字符串内容外,不附加结束符'\0',而c_str()返回一个以‘\0’结尾的字符数组。
2、const char *c_str();
c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式.
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
再举个例子:
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s",s.c_str()); //输出 "Hello World!"
拓展资料:
1.C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
2.C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
3.string 是C++中的字符串。 字符串对象是一种特殊类型的容器,专门设计来操作的字符序列。
4.不像传统的c-strings,只是在数组中的一个字符序列,我们称之为字符数组,而C + +字符串对象属于一个类,这个类有很多内置的特点,在操作方式,更直观,另外还有很多有用的成员函数。 string 的定义为:typedef basic_stringchar string;
5.char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的,有些编译器如pSOS的编译器,还可以通过编译开关来指定它是有符号数还是无符号数。
Q3: C语言,定义函数交换字符串数组?
C语言中交换两个字符串需要借助strcpy函数或者使用自定义交换函数进行交换
如交换a,b数组中的字符串代码:
char a[10] = "abed", b[10] = "efg", t[10];strcpy(t, a);//a复制给tstrcpy(a, b);//b复制给astrcpy(b, t);//t复制给b
附:strcpy函数详情
原型声明:
char *strcpy(char* dest, const char *src);
头文件:
#include string.h 和 #include stdio.h
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
Q4: C语言中,字符串怎么转换为int数组?
#includestdio.h
#includemath.h
#includestring.h
#includeconio.h
void main(){
int exc_n(char ch[]);int pnum=0;
do{//套用c语言字符串转数组函数了我之前写c语言字符串转数组函数的一个转换函数c语言字符串转数组函数,输出有点勉强。。。(固定输出头0x0...)
char ch[10]={0};char spr[2]={0};//分隔输入
printf("input the string of num.\n不得不说下c语言字符串转数组函数,每次输入一个数据c语言字符串转数组函数,按'x'可以结束程序\n");
scanf("%s",ch);
printf("0x0%x\n",pnum=exc_n(ch));
//printf("%x",pnum);
}while(getch()!='x');
}
//该函数将字符串型数字与整型数字单向转换
int exc_n(char ch[]){//,long lnum){
int size=0;int num=0;
if(sizeof(ch[0])0)
size=strlen(ch);int i=0;
while(size=0){
if(ch[size]47ch[size]58){num=num+(ch[size]-48)*(int)pow(10,i++);
}
size--;
//
}
return num;
}
Q5: 用C语言进行字符串到数组的转化?
#include stdio.h
#include string.h//为strlen()函数提抄供原型
int main()
{ char ch[100];
int i,length;
int n_number=0,m_number=0;
printf("请输入字符串: ");
gets(ch);//获取输入,并存入数组中
length=strlen(ch);//计算输入字符串的长度
for(i=0;ilength;i++)
{
if(ch[i]='0'ch[i]='9')//判断是否为数字
{
zhidao n_number++;
}
if(ch[i]='a'ch[i]='z'||ch[i]='A'ch[i]='Z')//判断是否为字母
{
m_number++;
}
}
printf("输入的字符串为: ");
puts(ch);//输出存入数组的字符串
printf("字符串中数字的个数=%d,字母的个数=%d\n",n_number,m_number);
return 0;
}
关于c语言字符串转数组函数和c语言字符串转数组的方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






