c++char数组转string_char数组转字符串
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赋值
}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元素
srtbyteString 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; 对于字符数组可以用你的新建一个字符串对象的方法转成字符串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); #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+""; 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 用char[] 的数组 然后取出前面的几个char转换成一个String就可以了 遍历链表,取出每个字符,使用StringBchar p = string.c_str();uffer或者StringBuidler组合起来,调用toString()方法获得最终的字符串。 不得哦 List容器只能装对象 char int 都不行 String可以 ArrayList 可以存储Character类型的,这是char的封装类 用Character AUSES_CONVERSION;rrayList<只能是类类型>ja中怎么将数组转为string输出到文本框?
_itoa_s()吧,四个参数.个是要转的int,第二个是要转入的字符串指针,第三个是int的位数长度(记得加一,_itoa_s要在结束后加'0'),第四个是要转换成多少进制,c++ int转化为string 类型
C语言 数组类型转换,怎样将一个float类型的数组转换成字符(串)数组?
ja中char类型的Arraylist如何转化成一个string?
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。