C语言问题:如何把一个字符转换成字符串(最好是字符数组)?

来源:百度知道 编辑:UC知道 时间:2024/05/30 19:28:14
比如:
ch1='a'; /*是字符*/
k[5]={"sj"}; /*字符数组*/
要求:把字符a转换成一个新的数组 p[2]="a",然后利用strcat(k,p),把'a'接到sj后面,使k[5]={"sja"}.
只要能把字符a能接到k[5]后面就行!也可以不用strcat函数!

楼上的两位写法有点冗余,也没有注释。
给你一个简洁的并带上解释,相信会对你理解有帮助。
#include<iostream>
using namespace std;
void main()
{
char ch1='a'; /*是字符*/
char k[5]={"sj"}; /*字符数组*/
char p[2]={ch1}; // 将单个字符转换为字符串数组,注意长度应为2
// 因为语言实现会在字符串尾部自动加上字符串结束符'0/'
// 但有效字符串长度仍然为1, 即strlen(p)的结果为1
// 但使用sizeof(p)则是求p的内存大小(字节),则应为2
cout<<strcat(k, p)<<endl; // 将合并后的结果输出显示,此时k中内容为{"sja"}
}

输出结果为:
sja

#include<stdio.h>
#include<string.h>
void main()
{
char ch1;
char k[5]={'s','j'},p[2]={NULL};
ch1='a'; /*是字符*/
p[0]=ch1;
p[1]='\0';
strcat(k,p);

printf("%s",k);
}

#include<stdio.h>
#include<string.h>
void main()
{
char p1='d';
char p2[4]="abc";
char p[2];
p[0]=p1;
p[1]='\0