C语言中怎样将一个字符数组里面的所有元素变成一个字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中怎样将一个字符数组里面的所有元素变成一个字符串相关的知识,希望对你有一定的参考价值。
例如:char ch[6]='a','b','c','d','e','f',s;
变成s=abcdef(注意:在以后出现s就是abcdef)
首先要明确的是,“字符串”在C语言中的含义实际上就是一个char类型的指针或数组,且最后一位置为0标记字符串的结束。所以,你所说的”字符数组“我是否可以理解为一个没有终结符0的char类型数组?
这样的话,方法如下
#include <string.h>int main() // 这里为了方便直接用main函数
char array[] = 'h', 'e', 'l', 'l', 'o' ;
/* 需要注意的是,这里没有终结符,故需要知道数组的 */
/* 大小(数组的大小是编译时常量)*/
char *dest_str; // 目标字符串
dest_str = (char *)malloc(sizeof(char) * (sizeof(array) + 1));
/* 为字符串分配堆空间 */
strncpy(dest_str, array, sizeof(array));
// 用C标准库函数strncpy拷贝字符
return 0;
实际上在C中,指针和数组还是有一点微妙的区别的,具体可参考度娘
参考技术A 你既然char s了,那么s只能存一个字符啊,不可能存放abcdef的,要么用成字符串数组s[6],要么用string啊,vector之类的追问c里面没有string类型啊,具体的实施能讲详细点吗?谢谢了
追答char ch[6]='a','b','c','d','e','f';
char *s=new char[100];
for(int i=0;ch[i]!='\0';i++)
s[i]=ch[i];
以后s就是abcdef了
出现s是字符串。
出现s[i]是字符
C语言中一个字符数组里面的所有元素变成一个字符串
#include <string.h>
int
main()
// 这里为了方便直接用main函数
{
char
array[] = {
‘h‘
,
‘e‘
,
‘l‘
,
‘l‘
,
‘o‘
};
/* 需要注意的是,这里没有终结符,故需要知道数组的 */
/* 大小(数组的大小是编译时常量)*/
char
*dest_str;
// 目标字符串
dest_str = (
char
*)
malloc
(
sizeof
(
char
) * (
sizeof
(array) + 1));
/* 为字符串分配堆空间 */
strncpy
(dest_str, array,
sizeof
(array));
// 用C标准库函数strncpy拷贝字符
return
0;
}
以上是关于C语言中怎样将一个字符数组里面的所有元素变成一个字符串的主要内容,如果未能解决你的问题,请参考以下文章