C++怎么把string 转换为char型数组

C++的string类是无法直接转换成char数组的,因为string类型是一个类,是封装的类型,而char数组只是一}个简单类型,如果要转换,可以利用string类的一个名为c_str()的成员函数。c_str()函数返回一个const类型的char指针,相当于是返回了一个const char数组。这个char指针是const类型的,指向的字符串内容不可以修}//string类型本来就可以看作一个char数组,如:改,所以是无法直接作这个指针的,然后将这个指针指向的字符串内容到一个新的char数组的内存空间,这样就完成了string对象向一个char数组的转换。

c++char数组转string_char数组转字符串c++char数组转string_char数组转字符串


c++char数组转string_char数组转字符串


c++char数组转string_char数组转字符串


在c++里char怎么给string赋值

}main()

定义一个数组char a[10];

char a[12]="";

怎么给这个数组赋值呢?

1、定义的时候直接用字符串赋值

char a[10]="hello";

注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!

2、对数组中字符逐个赋值

char a[10]={'h','e','l','l','o'};

3、利用strcpy

char a[10]; strcpy(a, "hello");

易错情况:

1、char a[10]; a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!

2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!

{char s[30];

strcpy(s, "Good News!"); /给数组赋字符串/ .

}上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留出连续30个字节的区域, 并将个字节的地址赋给s。当遇到strcpy( strcpy 为Turbo C2.0的函数)时, 首先在目标文件的某处建立一个"Good News!/0" 的字符串。其中/0表示字符串终止, 终止符是编译时自动加上的, 然后一个字符一个字符地到s所指的内存区域。因此定义字符串数组时, 其元素个数至少应该比字符串的长度多1。

ja中如何将char数组转化为String?

//多字节字符集,在vc6和vc7种可以编译通过的语句,但VS2005不能通过,默认为Unicode字符集

class Test{

public static void main(String[] args){

char[] c = {'a', 'b', 'c', 'd', 'e'};

for(int i = 0; i < c.length; i++){

if(s == null){

s = Character.toString(c[i]);

}else

s = s + c[i];

}System.out.println(s);

String(char[] value)

分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。

srcEnd - 字符串中要的一个字符之后的索引。

dstBegin - 目标数组中的起始偏移量。

public static String copyValueOf(char[] data)返回指定数组中表示该字符序列的3、设定编码方式相互转换 String。

参数:data - 字符数组。

char data[] = {'a', 'b', 'c'};

String str = new String(data);

上面的方法够多了。

valueOf(char[] data)

ja中怎样将char和String相互转换

char转String:最简单的方法就是直接用“”+char的形式转为String型

String转char:调用String#toCharArray()方法取得char数列,然后从数列中获取char元素

srtbyte

String str=“abcdef”;

char[] ch=st.toCharArray();

char c = 'a';

String str = String.valueOf(c);

ja JDK里面有 ,char转String String str = new String (char[]);

还有一个String类自己去看!

C语言中如何把int型数组转化为字符串?

string str="ABCDE";

不准用sprintf 之类函数,要自己写,那么 这样自己写i2s如下:

AfxMessageBox(_T("加载数据失败"),0);

#include

#include

#include

void i2s(int x, char s){

int v,xx,i,j,n=0;

char c;

xx = abs(x);

while(1){

s[n]=v+'0'; n++;

xx=(xx-v)/10;

if (xx==0) break;

}if (x<0) {s[n]='-'; n++;}

for (i=0;i

c=s[i]; s[i]=s[n-i-1];s[n-i-1]=c;

{int a[4]={12,34,-56,789};

char s[4][15];

int i;

for (i=0;i<4;i++){

i2s(a[i],s[i]);

printf("%s ",s[i]);

}return 0;

}输出:12 34 -56 789

如用

int i2s(int x, char s){

//全部照旧

return n;

}可以返回字符串长度。

你若想把所有输出放入一个长长的char 数组,有了每个字符串长度,应当很容易自己做了--即使不用strcat()。

是以整型的位数为限的,输入位数太长了不行。

//#include "stdafx.h"//vc++6.0加上这一行.

#include "stdio.h"//

void main(void){

double rn=9876.5678;

int i=1000000000,k,pt=1,n;

printf("Enter a floating point number...nrn=");

//scanf("%lf",&rn); //手工输入时把这一行开放.

while((rn/=10)>1.0) pt++;

n=(int)(rni);

while(!(n%10)){

n/=10;

i/=10;

}for(k=0,i/=10;i>=1;i/=10){

a[k++]=n/i+'0';

n%=i;

if(k==pt) a[k++]='.';

}printf("%sn",a);

int b=13444;

sprintf(a,"%d" ,b)将b的值转换为“13444”字符串付给a。

char s[10];

sprintf(s,"%d",10);

----------------------------------or--------------------------

#include

#include

int main()

{int number = 123456;

char string[25];

itoa(number, string, 10);

printf("integer = %d string = %sn", number, string);

return 0;

ja中怎么将数组转为string输出到文本框?

_itoa_s()吧,四个参数.个是要转的int,第二个是要转入的字符串指针,第三个是int的位数长度(记得加一,_itoa_s要在结束后加'0'),第四个是要转换成多少进制,

对于字符数组可以用你的新建一个字符串对象的方法转成字符串String类型,

或者用Text2.setText(String.valueOf(charArray));把字符数组转成字符串String类型,输出到文本框.

另外,需要把输出到文本框的语句放到for循环外面.

完整的Ja程序如下(改动的地方见注释)

public class A {

private static String encrypt(String clearText,int key){

char[] charArray=clearText.toCharArray();

for(int i=0;i

char c=(char)(charArray[i]+key);//这里把4改成key

charArray[i]=c;

}Text2.setText(new String(charArray));//这里把这句移到这里

return new String(charArray);

}public static void main(String[] args) {

String s=eusing namespace std;ncrypt("Hello World",4);

System.out.println(s);

c++ int转化为string 类型

#include

里面有to_string的函数可以写s=std::to_string(x),有多个重载,x是整型的或浮点型的,即x为内置数值类型就可以。

楼主你好,可以自己设计一个函数,将整数存到数组中,思路是如12345,将每位数1,2,3,4,5分别取出来,并按一定顺序存放起来,以下程序可以供楼主参考:

#include

main ()

{int a,n=0,i;

char b[100];

scanf ("%d",&a);

n=n10+a%10;

for (i=0;n>0;n=n/10)

b[i++]=n%10+48;

讲一个楼上没有说到的方法,使用append()函数b[i]=0;

}望楼主采纳。

1楼的函数从没听说过.

2楼的办法太不直观

3楼的办法只对9以下的数字有效

4楼的办法可行,就是太麻烦.

我给你的办法就是直接itoa完了再赋值stringitoa是C函数可以将int型转为c式字符串,c式字符串printf ("%sn",b);到C++的转换直接赋值就行.

补充一句,如果是VS2010会itoa函数的安全性,那就用

std::string szDetail;

stream<<2;

stream>>szDetail;

最简单的方法

int a = 8;

string s = a+"";

C语言 数组类型转换,怎样将一个float类型的数组转换成字符(串)数组?

1:小端存储

float 转成HEX字符串

float y=0.1111111119389534f;

char a[9];

for (a;a>0;a=a/10)unsigned char p;

p=(unsigned char )(&y);

sprintf(a,"%02X%02X%02X%02X",p[0],p[1],p[2],p[3]);

2:HEX字符串转float

char a[9]="398EE33D";

float y;

unsigned char p;

p=(unsigned char )(&y);

sscanf(a,"%2x%2x%2x%2x",p,p+1,p+2,p+3);

3:大端存储

float 转成HEX字符串

float y=0.1111111119389534f;

char a[9];

unsigned char p;

p=(unsigned char )(&y);

sprintf(a,"%02X%02X%02X%02X",p[3],p[2],p[1],p[0]);

4:HEX字符串转float

char a[9]="398EE33D";

float y;

unsigned char p;

p=(unsigned char )(&y);

sscanf(a,"%2x%2x%2x%2x",p+3,p+2,p+1,p);

#include

#include

int main()

{char s[50];

float a=1.03;

sprintf(s,"%f",a);//如果用sprintf函数小数点后会有6位

for(int i=strlen(s)-1;i>=0;i--)

{if(s[i]!='0')

{s[i+1]='0';//需要把后面的0去掉

break;

printf("%s

",s);

return 0;

char char_[7]=(char )V的。

float value[8],a=0; char value0_char[2],value1_char[10],value2_char[10],value3_char[10]……

sprintf(value0_char, "%-3f",value[0]); //"-"负号表示左对齐,3

sprindst - 目标数组。tf(value1_char, "%-10f",value[1]); //"-"负号表示左对齐,10:占10个空

给个思路,用sprintf函数,但IAR没用过,不清楚可行不,下面示例

#include

int main()

{char s[50];

float a=1.03;

printf("%sn",s);

return 0;

直接 (char) V;

函数 ftoa

ja中char类型的Arraylist如何转化成一个string?

用char[] 的数组 然后取出前面的几个char转换成一个String就可以了

遍历链表,取出每个字符,使用StringBchar p = string.c_str();uffer或者StringBuidler组合起来,调用toString()方法获得最终的字符串。

不得哦 List容器只能装对象

char int 都不行 String可以

ArrayList 可以存储Character类型的,这是char的封装类

用Character

AUSES_CONVERSION;rrayList<只能是类类型>