注册 登录
编程论坛 C++教室

字符串处理问题

work504 发布于 2010-08-28 16:54, 1031 次点击
最近老是觉得在C++下字符串处理都比较麻烦。。下面代码是我想把一个整形转成字符串,再靠右10位对齐

#include "string"
using std::string;
using namespace System;
using namespace std;

string str_sum;

示例1:
String^tempstr="";   //定义成这样,下面itoa就报错:不能将参数2从System::String^转化为char *
itoa(1000,tempstr,10);
str_sum += tempstr->PadRight(10, ' ');

示例2:
char tempstr[]="";   //定义成这样,下面tempstr->PadRight就报错:->PadRight左边必须指向类/结构/联合/泛型
itoa(1000,tempstr,10);
str_sum += tempstr->PadRight(10, ' ');


以上要如何修改。真是纠结死我了。好像String是类了,itoa参数不能对类操作,但下面的格式PadRight操作又只能是类。。所以各位XD帮帮忙。。。。
10 回复
#2
东海一鱼2010-08-28 20:33
楼主的是托管C++代码吗?怎末^都出来了。

#3
ljt2010-08-28 23:00
我想应该是类型转换的问题吧string转char*
char* p=string.c_str();
char* 转string
string s(char*);
#4
edward90922010-08-28 23:24
什么是托管C++, 版主! 求解!
#5
南国利剑2010-08-28 23:30
回复 楼主 work504
楼主要实现什么功能,说明清楚?
是要把字符串转换成其他类型,还是要把其他类型转换成字符串?
#6
南国利剑2010-08-28 23:43
这是一个把整数转换成字符串的。
希望对你有帮助。
程序代码:
#include<iostream.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char* argv[])
{
    int value;
    cout<<"请输入一个整数:";
    cin>>value;
    char array[100];
    cout<<"转换成字符型是:";
    cout<<itoa(value,array,10)<<endl;


    return 0;
}

#7
东海一鱼2010-08-28 23:47
托管是.NET的一个专门概念,它是融于通用语言运行时(CLR)中的一种新的编程理念, 也就是说,使用托管C++意味着,我们的代码可以被CLR所管理,并能开发出具有最新特性如垃圾自动收集、程序间相互访问等的.NET框架应用程序。

不过,个人对这个不太感兴趣,如果要写这样的代码不如直接用C#好了。
#8
zxh_852010-08-29 10:57
如果可以重写string类的话就重在转换运算符,讲自定义类型转船成基本类型就可以了
#9
work5042010-08-29 19:19
以下是引用南国利剑在2010-8-28 23:30:58的发言:

楼主要实现什么功能,说明清楚?
是要把字符串转换成其他类型,还是要把其他类型转换成字符串?
我主要是想:
1.把整形转成字串
2.想把转成的字串可以按一定的格式如右对齐10位排齐(不够位补空格)
因为以上两个都有专门的函数可以实现,如我贴子上所列,但两个方法,一个是对类操作,一个是对字符数组操作,就是整不到一起去,同时实现两个要求。
#10
work5042010-08-29 19:21
以下是引用东海一鱼在2010-8-28 23:47:37的发言:

托管是.NET的一个专门概念,它是融于通用语言运行时(CLR)中的一种新的编程理念, 也就是说,使用托管C++意味着,我们的代码可以被CLR所管理,并能开发出具有最新特性如垃圾自动收集、程序间相互访问等的.NET框架应用程序。

不过,个人对这个不太感兴趣,如果要写这样的代码不如直接用C#好了。
我也很纠结呢,只是项目有些模块已经用某种语言写好了,另一个项目想拿来直接用,又涉及类之间的操作,所以就整出这玩意出来了。
#11
work5042010-08-31 18:40
唉。。
1