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中,指针和数组还是有一点微妙的区别的,具体可参考度娘

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-06
你是想把char数组变成C++里面的string类型的字符串还是怎样?如果是,那可以i声明一个string对象,有相应的成员函数把char数组转换为string对象的。如果不是,那么ch就代表字符串
第2个回答  推荐于2017-10-07
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);本回答被提问者采纳
第3个回答  2011-06-06
char s[7]=]={'a','b','c','d','e','f','\0'};
出现s是字符串。
出现s[i]是字符
第4个回答  2011-06-06
你既然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了

C语言中,如何将一个数组中的数值转换成字符串输出?
1、首先写上注释内容,如下图所示。2、然后写上数据类型(char)+字符串名称,如下图所示。3、接下来需要在=后面写上字符串的内容,如下图所示。4、接下来需要将字符串的内容打印出来,如下图所示。5、接下来需要点击顶部的编译,如下图所示。6、接下来需要点击运行。7、这时候就可以看到刚才被定义...

C语言,如何将一个数组里的所有元素按顺序合并成一个字符串,求例程
数组类型 如果 是 4字节 int 型,想把它变成单字节流 用于发送。大端\/小端 自己 调整 一下 下面 的 下标就可以了。include <stdio.h> int main(){ int SendByte[5]={0x00,0x01,0x02,0x03,0x04};unsigned char sb[128];int i,j,n=0;for (i=0;i<5;i++) { sb[i*4]= Send...

C语言中,如何将一个数组中的数值转换成字符串输出?
void IntToStr(int *i, char *c, int len){\/\/i为整形数组,c为要存放字符串的数组,len为整形数组元素个数 int k;char tmp[10];for(k=0;k<len;k++){ itoa(i[k],tmp,10);strcat(c,tmp);int main()或:include <string.h> int main() \/\/ 这里为了方便直接用main函数 { char ...

请问C语言怎么将字符串数组中的数字给一个整型变量?
最简单的当然是使用sscanf这个函数啦。一个例子:include <stdio.h>int main(void) {char ch[] = "123456";int i;sscanf(ch, "%d", &i); \/\/将字符串里的数字按%d读取到i中printf("%d\\n", i);return 0;}

C语言怎么把一个字符数组转为一个整形数字 不知道数组元素实际多少个...
可以试试下面这个函数:相关函数: atof,atoi,strtod,strtol,strtoul 表头文件: #include<stdlib.h> 定义函数: long atol(const char *nptr);函数说明:atol()会扫描参数nptr字符串,跳过前面的空格字符(就是忽略掉字符串左空格的意思),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符...

c语言让一个字符串等于另一个字符串
int main(){ int i;char name1[]="xi",name2[]="qi";\/\/赋初值 i=0;while(name1[i]!='\\0' && name2[i]!='\\0'){\/\/'\\0'是字符串结束标志,以此来约束循环次数 name1[i]=name2[i];\/\/逐个字符进行替换 i++;} printf("%s\\n",name1);} 2.可以使用C语言的字符串处理语句...

C语言 编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字...
include "stdio.h"include "string.h"void main(){ char str[500];int i;printf("请输入字符串:\\n");gets(str);for(i=0;i<strlen(str);i++){ if(str[i]==' '||(str[i]>='0'&&str[i]<='9'))continue;else printf("%c",str[i]);} printf("\\n");} ...

C语言中怎么把字符数组里的数据存放到字符串数组中
利用C语言标准库中的strtok()函数,可以轻松快捷的将以空格分隔开的一串字符分成多个子串,存放到字符指针数组中。函数说明:include <string.h> \/\/头文件 char *strtok(char *str, const char *delim);strtok()用来将字符串分割成一个个片段。参数str指向欲分割的字符串,参数delim则为分割字符串...

C语言中如何把int型数组转化为字符串?
方法1:int a[10]={1,2,3,4,5,6,7,8,9,0}; char buf[10]; string s; for(int i=0;i<10;i++) { itoa(a[i],buf,10); s+=buf; } 方法2:int a[10]={65,66,67,68,69,70,71,72,73,74}; char buf; string s; for(int i=0;i<10;i++) { buf=a[i];...

c语言:如何将字符串中指定的字符替换为另一个指定字符
\/*功能:将str字符串中的oldstr字符串替换为newstr字符串 参数:str:操作目标oldstr:被替换者newstr:替换者 返回值:返回替换之后的字符串 版本:V0.2 \/ char*strrpc(char*str,char*oldstr,char*newstr){ char bstr[strlen(str)];\/\/转换缓冲区 memset(bstr,0,sizeof(bstr));for(int i=...

相似回答