C++中如何消除CString类型字符串中的标点符号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中如何消除CString类型字符串中的标点符号?相关的知识,希望对你有一定的参考价值。

参考技术A 1.int n = str.Find(',');
str.Delete(n);
2.str.Replace(",","");
3.int n= str.Find('.');
str = str.Left(n) + str.Right(str.GetLength() - n -1);本回答被提问者采纳
参考技术B CString中,有一个成员函数,可以将串中的某个字符或者子串用另一个字符或子串替代,用空串替代即可,具体哪个函数我忘记了,你可以看看CString原型,很容易找到! 参考技术C 查看trim相关的成员函数。

C++中 容易忽视的const 修饰符

C++可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的有点:

(1)const常量有数据类型,而宏常量没有数据类型。编译器可以对const进行类型安全检查,而后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误!(如类型不匹配问题)

(2)编译器处理方式不同。define宏是在预处理阶段展开,const常量是编译运行阶段使用。

(3)存储方式不同。define宏仅仅是展开,有很多地方使用,就展开多少次,不会分配内存。const常量会在内存中分配(可以是堆中也可以是栈中)。

 

 

使用const修饰符时需要注意以下几点:

(1)使用const修饰符定义常量时,必须初始化。

(2)常量一旦被定义,在程序中任何地方都不能再更改。

(3)const定义的常量可以有自己的数据类型,这样C++编译程序可以进行更加严格的类型检查。如果用const定义的是一个整型常量,int可以省略。

(4)函数参数可以用const说明,用于保证实参在该函数内部不被改动,大多数C++编译器能对具有const参数的函数进行更好的代码优化。

(5)函数返回值为const只用在函数返回为引用的情况。函数返回值引用常量表示不能将函数调用表达式作为左值使用。

(6)在类中,可以在类的成员函数定义后面加上const,表示这个函数是一个“只读函数”,函数不能改变类对象的状态,不能改变对象的成员变量的值。const成员函数也不能在函数中调用其他非const的函数。

 

 

const与指针一起使用时有三种情况:

(1)指向常量的指针,如const char *pc="abcd";它声明了指向常量的指针变量pc,不允许改变指针所指向的常量,但是由于pc是一个指向常量的普通指针变量,因此可以改变pc的值。

(2)常指针,如 char *const pc = "abcd"; 它声明了一个名为pc的指针变量,该指针是指向字符型数据的常指针,用“abcd”的地址初始化该常指针。该指针不能移动,但是它所指的数据可以改变。

(3)指向常量的常指针,如 const char * const pc ="abcd",声明了一个名为pc的指针变量,它是一个指向字符型常量的常指针,用“abcd”的地址初始化该指针,整个指针本身不能改变,它所指向的值也不能改变。

以上是关于C++中如何消除CString类型字符串中的标点符号?的主要内容,如果未能解决你的问题,请参考以下文章

c++本地示例033钱,正号,取数

如何在c++的字符串中删除某个字符串

CString 解析回车

CString与string的区别

C++中关于string类型究竟能不能用cout输出的问题

如何在 c++ 中读取不包含在 ascii 中的字符?