C语言字符数组转换字符串

作者&投稿:佟石 (若有异议请与网页底部的电邮联系)
C语言中怎样将一个字符数组里面的所有元素变成一个字符串~

首先要明确的是,“字符串”在C语言中的含义实际上就是一个char类型的指针或数组,且最后一位置为0标记字符串的结束。所以,你所说的”字符数组“我是否可以理解为一个没有终结符0的char类型数组?

这样的话,方法如下
#include 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中,指针和数组还是有一点微妙的区别的,具体可参考度娘

C语言程序:
#include #define MAX 100void main(){char *str = "Hello,world!";char arr[MAX];int i;for(i=0; *(str+i) != '\0'; i++)*(arr + i) = *(str + i);*(arr + i) = '\0';puts(arr);}

不可能做得完全一样!char *s = "abc";这样的定义意思是“创建一个常字符串abc,将首地址(就是a的地址)赋给char*型指针s”。可以设法让数组a变成字符串,再让一个s指针指向它,但目标却不是常量,也不在常量区。可以用下面的代码做个效果差不多的转换。

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char a[3]={'a','b','c'},b[4];
    const char *s;
    b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]='\0';
    s=b;
    printf("%s
",s);
    return 0;
}


char a[3] = {'a','b','c'}; 不可以直接转成下面的
char *s = "abc";
因为char *s 对应的实际上是 char a[4] = { 'a','b','c','\0'}
所以你可能需要重新处理成
const int len=sizeof(a) + 1;
char* b=(char*)malloc(len);
memcpy(b, a, sizeof(a));
b[len -1] = '\0'; //不要忘了在不使用b时free(b);

char a[3] = {'a','b','c'};
char b[4];
int i;
for(i=0;i<3;i++){
    b[i] = a[i];
}
b[3]='\0';
char *s = b;
//这应该是比较简单的方式。


a[3]=0;
puts(a);

只要给一个结束标志就可以了a[3]就是c的后面。给个0代表字符串结尾

不太清楚你想干嘛,理论来说是不可能的,上面是个字符数组,下面是个字符串常量,字符串常量的内容不能修改。


c语言如何输入带字符的数组
设置该数组为字符型。例如:char a[3][5]。这样做的话数组当中的所有存储的都被处理为字符。所以那个1,2,3之类的都变成字符了。不是数字。如果想要让1,2,3变成对应的数字,让他们减去字符‘0’即可。

c语言中,如何将字符串数组中的52提取出来,并转换为int类型
你的题目和文本好像不一样,两个都说一下吧 先说简单的,数组转成字符串只要用sprintf函数就可以了,在string.h中,用法和printf很类似,只要在前面加上你要生成的字符串指针就可以了 int sprintf ( char * str, const char * format, ... );字符串转换成int,首先你要判断是不是数字,将数字...

C语言 如何将字符数组 转换为整数
直接用atoi这个调用函数,形式为int a=atoi(字符数组);要加头文件的#include<sting.h>

C语言 这个问题 ,这是一个字符数组吗? 初始化的 是汉字啊?也能当字符...
我记得一个汉字占有两个字节。就相当于快字占用了name[0],name[1]而乐字占用了name[2],name[3]但是c语言的内存是连续的,就相当于个一字符串一样 所以用%s就可以把它当成一个字符串输出

C语言问题 将输入数字的转换成中文
下面是后台代码:include <stdio.h> include <stdlib.h> include <string.h> int main(){ int i=0,count=0; \/\/计数器 char nums[10][4]={"壹","贰","叁","肆","伍","陆","柒","捌","玖","拾"};int money;int moneys[5]; \/\/默认可以存储5个数字 printf("请输入金...

用C语言编程序:将字符数组s2中的全部字符复制到字符数组s1中。不用str...
include<stdio.h>#include<conio.h>int main(){char s1[100],s2[]="I love CHINA!";int i;for(i=0;s2[i]!='\\0';i++)s1[i]=s2[i];s1[i]=s2[i];printf("s1=%s\\n",s1);getch(); return 0;}祝你成功!

C\/C++ 语言字符数组和字符串数组的疑惑
而对于最后一个printf("%c", &str[1]),str[1]是字符数组中的第一个元素,&str[1]是第一个元素的地址,而%c期待的是一个字符,但是&str[1]却是一个地址,其实地址就是一个32位(X86机器)的整型数值,这样导致会将这个4B的数组中的最低一个Byte转换成为字符,然后输出。这就是为什么导致输出...

c语言怎么把一个字符数组分成多个数组?
可以使用strtok函数把一个字符数组分解成多个字符数组。1、strtok函数:原型:char *strtok(char s[], const char *delim);功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\\0 ...

c语言中string怎么用啊
C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数, 在使用前应包含头文件"stdio.h" ; 使用其它字符串函数则应包含头文件"string.h"。 下面介绍几个最常用的字符串函数。1....

c语言题目:从键盘输入一个字符串存入数组s[80],统计该字符串的长度并...
include<stdio.h> include<string.h> int main(){ char s[80];int len,i;gets(s); \/\/输入一段字符 len=strlen(s); \/\/计算字符串长度 for(i=0;i<len;i++){ if(s[i]>='a'&&s[i]<='z') \/\/将小写字母转换为大写 s[i]=s[i]-32;} printf("%d\\n",len); ...

宁国市19285241719: C语言中怎样将一个字符数组里面的所有元素变成一个字符串 -
保虾博清: 首先要明确的是,“字符串”在C语言中的含义实际上就是一个char类型的指针或数组,且最后一位置为0标记字符串的结束.所以,你所说的”字符数组“我是否可以理解为一个没有终结符0的char类型数组? 这样的话,方法如下 #include <...

宁国市19285241719: C语言,整数数组转化为字符串 -
保虾博清: C有“整数数组转化为字符串”的专用库函数char *itoa(int num,char *str,int radix).声明一个存放转换后的字符串的二维字符数组,将整型数组的元素作为num来调用itoa函数,将结束存入二维数组即可.举例代码如下:1 2 3 4 5 6 7 8 9 10 11 ...

宁国市19285241719: c语言怎么把几个字符转换成一个字符串 -
保虾博清: 多个字符串转成一个字符串,可以看出字符串拼接,使用字符串拼接strcat()函数来完成. 工具:DEV C++ char strcat (char *dest, const char *src ); strcat()会将参数src字符串拷贝到参数dest所指的字符串尾. 参考代码: #include<stdio.h> ...

宁国市19285241719: C语言中,如何将一串字符数组形成字符串 -
保虾博清: 可以人为的在字符数组后面加一个'/0',这样就等价为定义了一个字符串.你可以printf函数%s输出这个字符数组,也可以使用puts(字符数组)来输出.

宁国市19285241719: C语言如何从字符串数组中找到一个特定的字符串并用一个新的字符串进行替换,要有例程. -
保虾博清: #include <stdio.h>#include <string.h>//在orginal_str字符串中,找到dest字符串,//然后将它后面的字符串替换为src void replace(char *orig_str, const char *dest, const char*src) { char *right_ptr = NULL ; size_t dest_len = 0 ; size_t src_len = 0 ; if( ...

宁国市19285241719: 字符数组转化为字符串 C语言 -
保虾博清: 字符串的实质就是字符数组,不需要转换,你可以把字符数组名当作字符串变量来直接使用.

宁国市19285241719: 用c语言怎么将二维字符数组转成一串字符? -
保虾博清: 具体思路:先获取数组的长度,然后通过循环,将每一个数组的元素进行累加计算就可以实现该功能:具体代码如下:#include int main() { char ch[2][4]={'a','b','c','d', 'e','f','g','h'}; int i,j;/* //从键盘输入二维字符数组 char ch[2][4]; int i,j; for(i=0;i for(j=0;j scanf("%c",&ch[i][j]);*/ for(i=0;i for(j=0;j printf("%c",ch[i][j]); return 0; }

宁国市19285241719: C语言,如何将整数数组转化为字符串? -
保虾博清: #include <stdio.h> void main() {int d[5]={4,5,3,2,5};char a[80];int i;for(i=0;i<5;i++)a[i]=d[i]+'0';a[i]='\0'; //这个很重要,是字符串结束符printf("%s\n",a); }

宁国市19285241719: C语言中,如何将一个数组中的数值转换成字符串输出? -
保虾博清: 第一次编程,请笑纳 #include<stdio.h>void ToString(int array[], int array_size);int main(void) {int a[5] = { 5,4,3,2,1 };ToString(a, sizeof(a)/sizeof(a[0])); }void ToString(int array[], int array_size) {char *p;int i; p = (char*)malloc(array_size + 1); ...

宁国市19285241719: C语言整型数组转成字符串 -
保虾博清: 直接用这个值加上'0'就可以了 比如如下的转换 char str[11]; for(int i = 0; i < alen;++i){str[i] = a[i]+'0';} str[alen]='\0';

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网