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)
展开
 我来答
1172490637
推荐于2017-09-07 · TA获得超过562个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:127万
展开全部

首先要明确的是,“字符串”在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中,指针和数组还是有一点微妙的区别的,具体可参考度娘

asok00000
2011-06-06 · TA获得超过176个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:149万
展开全部
你是想把char数组变成C++里面的string类型的字符串还是怎样?如果是,那可以i声明一个string对象,有相应的成员函数把char数组转换为string对象的。如果不是,那么ch就代表字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huafeng86999
推荐于2017-10-07 · TA获得超过277个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:274万
展开全部
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);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
panweiy
2011-06-06 · TA获得超过1239个赞
知道大有可为答主
回答量:760
采纳率:0%
帮助的人:722万
展开全部
char s[7]=]={'a','b','c','d','e','f','\0'};
出现s是字符串。
出现s[i]是字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郑庆佳zqj
2011-06-06 · TA获得超过219个赞
知道答主
回答量:219
采纳率:0%
帮助的人:167万
展开全部
你既然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了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式