C语言中怎样将一个字符数组里面的所有元素变成一个字符串
例如:charch[6]={'a','b','c','d','e','f'},s;变成s=abcdef(注意:在以后出现s就是abcdef)...
例如:char ch[6]={'a','b','c','d','e','f'},s;
变成s=abcdef(注意:在以后出现s就是abcdef) 展开
变成s=abcdef(注意:在以后出现s就是abcdef) 展开
8个回答
展开全部
首先要明确的是,“字符串”在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中,指针和数组还是有一点微妙的区别的,具体可参考度娘
展开全部
你是想把char数组变成C++里面的string类型的字符串还是怎样?如果是,那可以i声明一个string对象,有相应的成员函数把char数组转换为string对象的。如果不是,那么ch就代表字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char ch[6]={'a','b','c','d','e','f'}, *s;
s = (char*)malloc(sizeof(char)*7);
if(!s)
return NULL;
s[6] = 0;
strncpy(s, ch, 6);
s = (char*)malloc(sizeof(char)*7);
if(!s)
return NULL;
s[6] = 0;
strncpy(s, ch, 6);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char s[7]=]={'a','b','c','d','e','f','\0'};
出现s是字符串。
出现s[i]是字符
出现s是字符串。
出现s[i]是字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你既然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了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询