CString常用方法简介
- 格式:doc
- 大小:62.50 KB
- 文档页数:11
C语言字符串处理整理-Lua中操作字符串的基本方法整理这篇文章主要介绍了Lua中操作字符串的基本方法整理,是Lua入门学习中的基础知识,需要的朋友可以参考下字符串是一个字符序列,以及控制字符。
字符串可以用三种形式被初始化,其中包括:单引号之间的字符双引号之间的字符[] 之间的字符[[和]]对于上述三种形式的一个例子如下所示。
代码如下:string1 = “Lua”print(“”String 1 is“”,string1)string2 = "Tutorial"print(“String 2 is”,string2)string3 = [[“Lua Tutorial”]]print(“String 3 is”,string3)当我们运行上面的程序,会得到下面的输出。
代码如下:“String 1” is LuaString 2 is TutorialString 3 is “Lua Tutorial”转义字符序列中使用字符串来改变字符的正常解释。
例如打印双引号(“”)在上面的例子中,我们已经使用“转义序列,并且其使用列于下表中。
字符串操作Lua支持字符串操作字符串:现在,让我们深入到几个例子,看这些字符串操作函数的行为。
案例操作用于操纵字符串转换大写和和小写的样品代码如下。
代码如下:string1 = “Lua”print(string.upper(string1))print(string.lower(string1))当我们运行上面的程序,会得到下面的输出。
代码如下:LUAlua替换子字符串与另一个替换一个字符串的出现次数示例代码如下。
代码如下:string = “Lua Tutorial”-- replacing stringsnewstring = string.gsub(string,“Tutorial”,“Language”) print(“The new string is”,newstring)当我们运行上面的程序,会得到下面的输出。
cstring 加法-回复CString是C++中的一个字符串类,用于处理字符串操作。
它拥有许多内置的字符串操作函数,其中包括字符串加法操作。
在本文中,我将详细解释CString的加法操作,并提供一些示例代码来说明它的使用。
在开始之前,让我们先熟悉一下CString类。
CString类是MFC(Microsoft Foundation Class)库中的一个重要组件。
它提供了一种易于使用的方法来处理字符串,其功能相对于C风格的字符串更加强大和方便。
CString 类中包含了许多成员函数,其中包括加法操作符“+”用于字符串连接。
CString类允许我们将两个字符串连接起来形成一个新的字符串。
这个过程很简单,只需要使用"+"操作符将两个字符串放在一起即可。
下面是一个示例代码,演示了如何使用CString类进行字符串加法操作:cpp#include <iostream>#include <afx.h> 引入CString类头文件int main() {CString str1 = "Hello";CString str2 = " World!";CString str3 = str1 + str2;std::cout << str3.GetString(); 输出:Hello World!return 0;}在上面的示例中,我们首先包含了"afx.h"头文件,这是MFC库中的一个重要头文件,其中包含了CString类的定义。
然后,我们声明了三个CString 对象:str1,str2和str3。
str1和str2分别初始化为"Hello"和" World!",而str3则是通过将str1和str2连接起来而得到的结果。
在将str1和str2相加时,我们使用了"+"操作符。
需要强制类型转化时,C++规则容许这种选择。
比如,你可以将(浮点数)定义为将某个复数(有一对浮点数)进行强制类型转换后只返回该复数的第一个浮点数(也就是其实部)。
可以象下面这样:Complex c(1.2f,4.8f);float realpart=c;如果(float)操作符定义正确的话,那么实部的的值应该是1.2。
这种强制转化适合所有这种情况,例如,任何带有LPCTSTR类型参数的函数都会强制执行这种转换。
于是,你可能有这样一个函数(也许在某个你买来的DLL中):BOOL DoSomethingCool(LPCTSTR s);你象下面这样调用它:CString file("c:¥¥myfiles¥¥coolstuff")BOOL result=DoSomethingCool(file);它能正确运行。
因为DoSomethingCool函数已经说明了需要一个LPCTSTR类型的参数,因此LPCTSTR被应用于该参数,在MFC 中就是返回的串地址。
如果你要格式化字符串怎么办呢?CString graycat("GrayCat");CString s;s.Format("Mew!I love%s",graycat);注意由于在可变参数列表中的值(在函数说明中是以"..."表示的)并没有隐含一个强制类型转换操作符。
你会得到什么结果呢?一个令人惊讶的结果,我们得到的实际结果串是:"Mew!I love GrayCat"。
因为MFC的设计者们在设计CString数据类型时非常小心,CString类型表达式求值后指向了字符串,所以这里看不到任何象Format或sprintf中的强制类型转换,你仍然可以得到正确的行为。
描述CString的附加数据实际上在CString名义地址之后。
oc基础方法运用OC(Objective-C)是一种面向对象的编程语言,广泛应用于iOS和Mac开发中。
在OC中,有许多基础的方法可以帮助开发者完成常见的任务。
下面将介绍一些常用的OC基础方法及其运用。
1.字符串操作方法:- `length`:获取字符串的长度。
- `substringToIndex:`:截取字符串的前N个字符。
- `substringFromIndex:`:截取字符串的后N个字符。
- `containsString:`:判断字符串中是否包含指定的子字符串。
- `stringByAppendingString:`:将两个字符串进行拼接。
运用示例:```objective-cNSString *subStr = [str substringToIndex:5];NSString *subStr2 = [str substringFromIndex:6];```2.数组操作方法:- `initWithObjects:count:`:通过给定的对象数组来创建一个数组。
- `count`:获取数组中的元素个数。
- `objectAtIndex:`:获取指定位置的数组元素。
- `addObject:`:将对象添加到数组的末尾。
- `insertObject:atIndex:`:将对象插入到指定位置。
运用示例:```objective-cNSInteger count = [array count];NSString *object = [array objectAtIndex:1];```3.字典操作方法:- `initWithObjectsAndKeys:`:通过给定的对象和键创建一个字典。
- `count`:获取字典中的键值对个数。
- `objectForKey:`:获取指定键对应的值。
- `setObject:forKey:`:将指定的值与键关联。
运用示例:```objective-cNSInteger count = [dictionary count];```4.网络请求方法:运用示例:```objective-cif (error)} else//处理返回的数据NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];}}];[dataTask resume];```以上是一些常用的OC基础方法及其运用,可以帮助开发者完成日常的编程任务。
c语言判断字符串开头1.引言1.1 概述概述部分的内容主要是对整篇文章进行概括和简介,介绍文章的背景、目的和结构,下面是概述部分的一个例子:引言是一篇长文的开端,它为读者提供了对接下来内容的预期和总览。
本文将介绍C语言中判断字符串开头的方法。
在C语言编程中,经常会遇到需要判断一个字符串是否以特定的字母或字符串开头的情况。
对于新手来说,可能不清楚如何有效地实现这个功能。
因此,本文将介绍一些常见的方法和技巧,帮助读者学会如何判断字符串开头。
本文将从两个方面展开讨论。
首先,我们会对字符串的基本概念进行简要介绍,包括C语言中的字符串表示以及字符串的特点。
其次,我们将重点展示C语言中判断字符串开头的方法,并提供相应的代码示例和详细的解释。
通过阅读本文,读者将能够掌握不同的字符串判断方法,并根据自己的需要选择合适的方式来进行字符串开头判断。
在接下来的正文部分,我们将首先对字符串的基本概念进行介绍,包括字符串的定义和表示方式,以及C语言对字符串操作的相关函数。
然后,我们将详细讨论C语言中判断字符串开头的方法,包括使用数组下标、使用字符串库函数和使用正则表达式等多种方法。
每种方法都会提供相应的代码示例和详细的解释,以便读者能够更好地理解和掌握。
总结部分将对本文进行一个简要的总结,并提供一些实践中的建议和思考。
我们将回顾本文涉及的不同方法和技巧,并总结它们的优缺点和适用情况。
最后,我们将得出一些结论,以便读者能够在实际编程中灵活运用这些字符串判断的方法,提高代码的效率和可维护性。
希望本文能够帮助读者更好地理解和掌握C语言中判断字符串开头的方法,提高编程技能和效率。
让我们开始探索吧!1.2 文章结构文章结构:本文主要包括以下几个部分:引言、正文和结论。
在引言部分,首先对文章进行了一个简要的概述,介绍了本文的主要内容和目的。
然后对文章的结构进行了说明,包括引言、正文和结论三个部分的内容。
正文部分主要分为两个小节:字符串的基本概念和C语言中判断字符串开头的方法。
cstringlist用法-回复CStringList是MFC(Microsoft Foundation Class)中的一个类,主要用于管理一组C-style字符串的链表。
本篇文章将逐步回答与CStringList 相关的各个方面,包括使用方法、常见操作以及示例代码等。
一、什么是CStringList?在介绍具体使用方法前,我们先来了解一下CStringList的基本概念。
CStringList是MFC中的一个类,它是一个模板类,用于管理C-style字符串的链表。
它提供了一系列的成员函数和操作符重载,方便我们对链表进行访问和操作。
二、如何创建和初始化一个CStringList对象?要使用CStringList,首先需要在代码中包含头文件Afxcoll.h,并且使用using声明:cpp#include <afx.h>#include <afxtempl.h>using namespace std;接下来,我们可以通过两种方式创建和初始化一个CStringList对象。
1. 通过默认构造函数创建一个空链表:cppCStringList list;2. 通过将已有的链表作为参数传入构造函数进行初始化:cppCStringList list2(list);这样就可以创建并初始化一个CStringList对象了。
三、常见操作1. 插入元素我们可以使用AddHead和AddTail函数在链表的头部和尾部插入新的元素。
例如:cpplist.AddHead(_T("Hello"));list.AddTail(_T("World"));这样就在链表中插入了两个元素。
2. 获取链表大小可以使用GetCount函数获取链表中的元素个数:cppint count = list.GetCount();3. 访问链表元素CStringList提供了一系列的迭代器(iterator)用于访问链表的元素。
c++中cstring转int的方法
在C++中,可以使用`std::stoi`函数将C字符串转换为整数。
`std::stoi`函数是C++标准库中的一个函数,它可以将字符串转换为相应的整数类型。
下面是一个示例代码,演示如何使用`std::stoi`函数将C字符串转换为整数:```cpp
#include <iostream>
#include <cstring>
#include <string>
int main() {
const char* cstr = "12345";
std::string str(cstr);
int num = std::stoi(str);
std::cout << "The integer is: " << num << std::endl;
return 0;
}
```
在上面的代码中,我们首先将C字符串`"12345"`转换为标准字符串类型`std::string`,然后使用`std::stoi`函数将其转换为整数类型。
最后,我们将转换后的整数打印到控制台上。
需要注意的是,如果C字符串无法转换为整数类型,或者转换后的整数超出了该类型的范围,`std::stoi`函数将会抛出异常。
因此,在使用该函数时,需要确保输入的字符串是合法的,并且转换后的整数在预期的范围内。
1。
string转jsonarray的方法在开发过程中,经常会遇到将字符串转换为JSONArray的需求。
JSONArray是一种轻量级的数据交换格式,可用于在不同平台之间传递和存储数据。
本文将介绍几种常用的方法来实现string转jsonarray的操作,帮助开发者更好地处理相关需求。
一、使用JSONArray构造函数可以使用JSONArray的构造函数将字符串转换为JSONArray对象。
构造函数接受一个表示JSON文本的字符串参数。
String jsonString = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30}]";JSONArray jsonArray = new JSONArray(jsonString);解释和说明:首先创建一个代表JSON文本的字符串变量`jsonString`,示例中的字符串表示一个包含两个对象的数组。
然后使用JSONArray的构造函数将字符串转换为JSONArray对象,并赋值给变量`jsonArray`。
此时,`jsonArray`即为转换后的JSONArray对象。
二、使用JSONTokenerJSONTokener是一个用于将字符串解析为JSON对象或数组的工具类。
可以使用它将字符串转换为JSONArray对象。
String jsonString = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30}]";JSONTokener tokener = new JSONTokener(jsonString);JSONArray jsonArray = new JSONArray(tokener);解释和说明:首先创建一个代表JSON文本的字符串变量`jsonString`,示例中的字符串表示一个包含两个对象的数组。
cstring tokenize函数CString是一种字符类型的数据结构,它在Windows平台下被广泛使用,主要用于字符串处理。
而 tokenize函数则是CString中一种常用的工具函数,它可以将一个字符串按照指定的分隔符分成若干个子字符串,并将这些子字符串存储到一个数组中,方便进行操作和管理。
下面是一个详细的过程:1.首先需要创建一个CString类型的变量,然后通过调用该变量的Tokenize函数进行操作。
例如:CString str = "hello,world!";//定义一个字符串变量CString delimiter = ",";//定义分隔符2.调用Tokenize函数,并将分隔符作为参数传递给它。
CString token = str.Tokenize(delimiter);//将字符串按照“,”分成子字符串,并将第一个子字符串返回3.上述操作只能返回第一个子字符串,若想获取整个字符串中的所有子字符串,则需要使用Tokenize函数的另一种使用方法。
例如:CString str = "hello,world!";CString delimiter = ",";CString token;while (token = str.Tokenize(delimiter)){//输出子字符串cout << token << endl;}在这个例子中,我们定义了一个while循环,并在其中使用Tokenize函数,在每次迭代中,Tokenize函数都将字符串按照指定的分隔符分成若干个子字符串,并将这些子字符串返回到token变量中。
循环结束的条件就是Tokenize函数返回空指针,表示已经分完了所有的子字符串。
4.对于一些复杂的字符串分割操作,Tokenize函数也可以通过指定更多的参数来实现。
Objective-C中字符串的拼接⽅法⼩结在 java 和 c# 中,字符串的拼接是直接⽤ + 来操作的。
在 OC 中,说是有下⾯3种⽅法,NSString* string; // 结果字符串NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来⽅法1:复制代码代码如下:string = [NSString initWithFormat:@"%@,%@", string1, string2 ];⽅法2:复制代码代码如下:string = [string1 stringByAppendingString:string2];⽅法3:复制代码代码如下:string = [string stringByAppendingFormat:@"%@,%@",string1, string2];⽹上的说法是第⼆种⽅法效率更好⼀点,不过我就感觉不出来什么,具体情况具体对待好了。
在宏⾥拼接字符串:复制代码代码如下://正式服务器#define API_DOMAIN @""//测试服务器//#define DOMAINXX @"192.168.0.10"#define API_SYSTEM @"http://"API_DOMAIN@"/system/"#define API_USER @"http://"API_DOMAIN@"/user/"API_SYSTEM 宏展开后是:@"http://"@""@"/system/"编译器会⾃动将字符中连接起来,⽬的实现。
c语⾔下的实现:复制代码代码如下://正式服务器#define API_DOMAIN ""//测试服务器//#define DOMAINXX "192.168.0.10"#define API_SYSTEM "http://"API_DOMAIN"/system/"#define API_USER "http://"API_DOMAIN"/user/"。
C语言gets颠倒字符串的函数1. 介绍在C语言中,字符串是由一串字符组成的,常用的字符串函数包括获取字符串长度、拷贝字符串、比较字符串等。
其中,颠倒字符串的函数对于处理字符串问题非常实用。
在本篇文章中,我们将重点讨论C语言中使用gets函数颠倒字符串的方法。
2. gets函数简介在C语言中,gets函数用于从标准输入读取一行字符串(以换行符’’结尾),并将其保存在指定的字符数组变量中。
gets函数的原型如下:char *gets(char *s);其中,参数s是一个指向字符数组的指针,用于保存输入的字符串。
该函数返回s的值。
3. 颠倒字符串的方法为了颠倒字符串,我们可以使用一个循环将字符串从尾部开始逐个字符取出,并将其放置到一个新的字符数组中,最后将新字符数组的内容复制回原来的数组。
下面是一个使用gets函数颠倒字符串的示例代码:#include <stdio.h>#include <string.h>void reverseString(char *s) {int len = strlen(s);char temp[len+1];for (int i = len-1; i >= 0; i--) {temp[len-1-i] = s[i];}temp[len] = '\0';strcpy(s, temp);}int main() {char str[100];printf("请输入一个字符串:");gets(str);reverseString(str);printf("颠倒后的字符串为:%s\n", str);return 0;}在上述代码中,我们首先定义了一个reverseString函数,该函数接受一个字符数组作为参数。
函数内部首先使用strlen函数获取到字符串的长度,并根据长度创建一个新的字符数组temp。
c语言 uint8转string的方法
在C语言中,将uint8类型的数据转换为字符串可以使
用sprintf函数来实现。
sprintf函数是一个格式化输出函数,它可以将不同类型的数据按照指定的格式转换成字符串。
以下是一个示例代码,演示了如何将uint8类型的数据
转换为字符串:
```c
#include <stdio.h>
int main() {
uint8_t num = 255;
char str[4];
sprintf(str, "%d", num);
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
在上述代码中,我们首先定义了一个uint8_t类型的变量`num`,并初始化为255。
然后,我们定义了一个字符型数组`str`,用于存储转换后的字符串。
使用sprintf函数将num转换为字符串,并将结果存储在str中。
通过运行上述代码,输出结果将会是:
```
转换后的字符串为:255
```
此时,我们成功将uint8类型的数据255转换为了字符串。
需要注意的是,sprintf函数的第一个参数是要存储字符串的数组,数组的大小应大于或等于要输出的字符串的长度加一。
除了sprintf函数之外,还可以使用其他方法来将uint8类型转换为字符串,比如使用itoa函数或者自己编写转换函数。
但是sprintf函数是一种通用的方法,适用于将各种类型的数据转换为字符串。
希望以上代码能够满足您的需求,如果有其他问题,请随时提问。
cstring的right函数cstring的right函数是一个用于截取字符串右侧字符的函数。
它可以根据指定的长度参数,返回原始字符串中右侧的一部分字符。
让我们来看一个具体的例子来解释right函数的使用方法。
假设我们有一个字符串"Hello, World!",我们想要截取右侧的5个字符,那么我们可以这样使用right函数:right("Hello, World!", 5),其返回值将是"orld!"。
接下来,让我们来详细说明一下right函数的用法和注意事项。
1. 函数名称:right2. 参数:- 字符串:需要截取右侧字符的原始字符串。
- 长度:要截取的右侧字符的长度。
3. 返回值:截取的右侧字符。
4. 示例:- right("Hello, World!", 5) 返回值为"orld!"- right("12345", 3) 返回值为"345"需要注意的是,right函数会从原始字符串的右侧开始截取字符。
如果指定的长度大于原始字符串的长度,函数将返回整个原始字符串。
在实际应用中,right函数可以用于截取文件的扩展名、手机号码的后4位等等。
它提供了一种简便的方式来获取字符串右侧的一部分字符。
总结一下,cstring的right函数是一个用于截取字符串右侧字符的函数,它可以根据指定的长度参数,返回原始字符串中右侧的一部分字符。
在使用时,需要注意参数的正确性,并根据具体需求进行调整。
希望本文能够帮助你更好地理解和使用right函数。
C++中CString的用法详解关于TCHAR, char, wchar_t三种字符类型的区别,会在随后的文章中详细解释!下面是一、CString类的几种基本操作:1、长度:GetLength();CString str(_T("abc"));int len = str.GetLength(); //len == 32、是否为空(即不含字符):IsEmpty();3、清空字符串:Empty();CString str(_T("abc"));BOOL mEmpty = str.IsEmpty(); //mEmpty == FALSEstr.Empty();mEmpty = str.IsEmpty(); //mEmpty == TRUE4、转换大小写:MakeUpper(),MakeLower();5、转换顺序:MakeReverse();二、字符串的查找1、Find:从制定位置开始查找指定字符串,返回其位置(找不到返回-1)CString str(_T("abcdefg"));int idx = str.Find(_T("cde"), 0); //idx 的值为2;2、ReverseFind:从字符串末尾开始查找指定的字符,返回其位置,找不到返回-1,虽然是从后向前查找,但是位置为从开始算起;CString str(_T("abcdefg"));int idx = str.ReverseFind('e'); //idx 的值为4;3、FindOneOf:查找参数中给定字符串中的任意字符,返回第一次出现的位置CString str(_T("abcabcd"));int idx = str.FindOneOf(_T("cbd")); //idx 的值为1;三、字符串的提取Left,Mid,Right:分别实现从CString对象的左、中、右进行字符串的提取操作CString str(_T("abcd"));CString strResult = str.Left(2); //strResult == abstrResult = str.Mid(1); //strResult == bcdstrResult = str.Mid(0, 2); //strResult == abstrResult = str.Right(2); //strResult == cd四、其他类型与CString类型的转换,CString str;1、格式化字符串Format:实现从int、long等数值类型、TCHAR、TCHAR*等类型向CString 类型转换(注:TCHAR、TCHAR*等类型向CString类型转换,可以直接赋值)-- CString -> int:_ttoi()-- CString -> TCHAR* :1)TCHAR* T = str.GetBuffer(); str.ReleaseBuffer();2)TCHAR* T = (LPTSTR)(LPCTSTR)str;五、CString对象的Ansi与Unicode转换1、当前工程环境Unicode(窄字节(Ansi)向宽字节(Unicode)转换)CString str;str = "abc";char* p = "defg";str = p;2、当前工程环境非Unicode(宽字节向窄字节转换)CString str;str = L"abc";wchar_t* p = L"defg";str = p;六、CString对象包含字符串所占用的字节数CString str;int n = str.GetLength() * sizeof(TCHAR);**错误的求法:sizeof(CString)、sizeof(str),这是求指针长度,总是为4。
cstring头文件例题
Cstring头文件是C++语言中用于处理字符串的标准库头文件之一。
它包含了许多用于操作字符串的函数和类。
下面我将从不同角
度来解答关于cstring头文件的例题。
1. 介绍cstring头文件的作用,cstring头文件包含了一系列
用于处理C风格字符串的函数,例如字符串复制、连接、比较、查
找等。
它提供了一种方便的方式来处理字符串操作,使得程序员可
以更加高效地处理字符串。
2. 举例说明cstring头文件的使用,例如,可以使用strcpy
函数来将一个字符串复制到另一个字符串中,使用strlen函数来获
取字符串的长度,使用strcat函数来将两个字符串连接起来,使用strcmp函数来比较两个字符串的大小关系等等。
3. 讨论cstring头文件的一些常见函数,除了上述提到的函数外,cstring头文件还包含了诸如strchr、strstr、strtok等函数,它们分别用于在字符串中查找指定字符、子字符串以及对字符串进
行分割操作。
4. 分析cstring头文件的优缺点,cstring头文件提供了丰富的字符串处理函数,使得字符串操作变得简单方便。
然而,由于它是针对C风格字符串而设计的,在处理C++的std::string类型时可能会存在一些不便之处。
5. 总结,通过使用cstring头文件,我们可以方便地进行字符串操作,但在实际应用中需要注意避免潜在的缓冲区溢出等安全问题,同时在C++中也可以考虑使用std::string类来代替C风格字符串,以获得更好的类型安全性和便利性。
希望以上回答能够满足你的要求。
如果你有其他问题,也欢迎继续提出。
cstringfind函数cstringfind函数是一个在C语言中常用的字符串查找函数,用于查找一个字符串在另一个字符串中的位置。
它可以帮助程序员在字符串处理中快速定位目标字符串,并进行后续的操作。
在使用cstringfind函数时,需要传入两个参数,即待查找的字符串和目标字符串。
函数会返回目标字符串在待查找字符串中的位置,如果找不到则返回-1。
cstringfind函数的使用非常简单,只需要将待查找字符串和目标字符串作为参数传入即可。
下面是一个示例:```c#include <stdio.h>#include <string.h>int main() {char str1[] = "Hello, world!";char str2[] = "world";char *result;result = strstr(str1, str2);if (result != NULL) {printf("目标字符串在待查找字符串中的位置是:%ld\n", result -str1);} else {printf("未找到目标字符串\n");}return 0;}```在上面的示例中,我们定义了两个字符串变量str1和str2,分别存储待查找的字符串和目标字符串。
然后使用strstr函数进行查找,将返回的结果赋值给指针变量result。
最后通过判断result是否为NULL来确定是否找到了目标字符串,并输出其在待查找字符串中的位置。
需要注意的是,cstringfind函数是区分大小写的,所以在查找字符串时要确保大小写的一致性。
如果不需要区分大小写,可以使用其他的字符串查找函数,比如strcasestr。
除了返回目标字符串在待查找字符串中的位置外,cstringfind函数还可以用于判断一个字符串是否包含另一个字符串。
Loadrunner常用函数1字符串及数据转换操作函数1.1常用函数A.函数介绍Strlen(const char *string)strcpy(destination_string, source_string); //拷贝一个字符串到另一个字符串中.strcat(string_that_gets_appended, string_that_is_appended);//合并字符串atoi(string_to_convert_to_int); //returns the integer value 字符串转换为整型itoa(integer_to_conver_to_string, destination_string, base); 整型转换为字符串strcmp(string1, string2); //比较字符串0:相同stricmp(string1,string2) //区分大小写比较字符串strstr(string1,string2) //strlwr(const char *string) //将字符串转换为小写strupr(const char *string) //将字符串转换为大写B.实用例子✓//常用字符串处理函数的例子Actions(){char MyString1[20] = "";char MyString2[20] = "";char MyString3[20] = "Mercury2";char Cstring[10] = "12345";int Cint;strcpy(MyString1,"Mercury1");// Now MyString1 contains "Mercury1"// Copy MyString3 into MyString2strcpy(MyString2,MyString3);// Catenate MyString2 to MyString1strcat(MyString1,MyString2);// Cstring is converted to integer CintCint = atoi(Cstring);// Cint is converted to stringCint = 100;itoa(Cint,Cstring,10);return 0;}✓//字符串查找和截取例子/*声明:int findSubStr(char* resultStr,char* sourceStr,char* beginStr,char* endStr)功能:将字符串sourceStr中beginStr和endStr之间的字符串输出给resultStr返回值:0:成功1:失败调用方法:findSubStr(resultStr,”my name is zhangwei too”,”is”,”too”)*/int findSubStr(char* resultStr,char* sourceStr,char* beginStr,char* endStr){int ilen,i;char* findStartPos;char* findEndPos;findStartPos = (char*)strstr(sourceStr,beginStr);if (findStartPos==NULL) {return -1;}lr_output_message("findStartPos=%s",findStartPos);findEndPos = (char*)strstr(findStartPos,endStr);if (findEndPos==NULL) {return -1;}lr_output_message("findEndPos=%s",findEndPos);ilen=strlen(beginStr);findStartPos=findStartPos+ilen;lr_output_message("findStartPos=%s",findStartPos);ilen=findEndPos-findStartPos;strncpy(resultStr,findStartPos,ilen);lr_output_message("resultstr=%s",resultStr);return 0;}1.2格式化字符串A.函数介绍函数定义:int sprintf(char *string, char *farmat [,argument,...])对于format说明:%s:格式化字符串%d:格式化数字类型为字符串%x:将数字格式化成小写十六进制数的字符串%X:将数字格式化成小写十六进制数的字符串格式化结果长度:%5d(5位),%8x(8位)%-4d、%-5x、%-6X:格式化结果左对齐,(没有-表示是右对齐)sprintf(s, "%d", 123); //将数字123格式化成"123"sprintf(s, "%5d%5d", 123, 4567); //指定格式化长度,结果是:s=" 123 4567"sprintf(s, "%-5x%5d", 123, 4567); //指定格式化长度,结果是:s="7b 4567"B.实用例子Action(){int i,k;float j;char formatStr[32];i=123;k=-123;j=123.456;sprintf(formatStr,"formatStr=%s","format example");lr_output_message(formatStr);sprintf(formatStr,"format integer(123)=%d",i);lr_output_message(formatStr);sprintf(formatStr,"format float(123.456)=%3.1f",j);lr_output_message(formatStr);sprintf(formatStr,"format hex(123)=%x",i);lr_output_message(formatStr);sprintf(formatStr,"format HEX(123)=%X",i);lr_output_message(formatStr);sprintf(formatStr,"format integer(-123)=%5d%5X",i,i);lr_output_message(formatStr);return 0;}运行结果:Action.c(10): formatStr=format exampleAction.c(12): format integer(123)=123Action.c(14): format float(123.456)=123.5Action.c(16): format hex(123)=7bAction.c(18): format HEX(123)=7BAction.c(20): format integer(-123)= 123 7B1.3数据类型转换函数A.函数介绍Sprintf:可以将其它数据类型转换为字符串类型(1.2中有详细描述)Atoi:将字符转换为整数类型Itoa:将整数转换为字符存储到第二个参数中,可以将整数转换为不同的数据类型字符串Atof:将字符转换为浮点类型(使用时应该首先在文件头声明double atof(const char *string);),否则结果是错误的Atol:将字符转换为长整数类型Strtol:将一个字符串中的第一个数字字符串部分转换成长整数类型B.例子以下脚本是数据类型转换的例子double atof(const char *string); //必须加上这一行,否则atof函数会出现错误结果Action(){int i;double j;long k;char ichange[32];/* itoa 函数例子*/i=123;itoa(i,ichange,10); //将整数转换为十进制的字符串lr_output_message("ichange=%s",ichange);itoa(i,ichange,16); //将整数转换为十六进制的字符串lr_output_message("ichange=%s",ichange);itoa(i,ichange,2); //将整数转换为二进制的字符串lr_output_message("ichange=%s",ichange);/* atoi 函数例子*/i=atoi("12345"); //将字符串转换为整数lr_output_message("atoi('12345')=%d",i);/* atof 函数例子*/j=atof("123.12"); //将字符串转换为浮点数lr_output_message("atof('123.12')=%.3f",j);/* atol 函数例子*/k=atol("1234567890"); //将字符串转换为长整型lr_output_message("atol('1234567890')=%d",k);/* strtol 函数例子*///strcpy(ichange,"1234567890 is long int");k=strtol("1234M567890",ichange,10); //将字符串转换为长整型lr_output_message("strtol()=%d",k);return 0;}运行结果:Action.c(13): ichange=123Action.c(15): ichange=7bAction.c(17): ichange=1111011Action.c(21): atoi('12345')=12345Action.c(25): atof('123.12')=123.120Action.c(29): atol('1234567890')=1234567890Action.c(34): strtol()=12341.4字符串编码转换的函数函数定义:nt lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);该函数有4个参数,含义如下:sourceString:被转换的源字符串。
CString常用方法简介 作者:webmaster 出处:无
CString::Compare int Compare( LPCTSTR lpsz ) const; 返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" ); CString s2( "abd" ); ASSERT( s1.Compare( s2 ) == -1 ); ASSERT( s1.Compare( "abe" ) == -1 );
CString::CompareNoCase int CompareNoCase( LPCTSTR lpsz ) const; 返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 不区分大小字符
CString::Collate int Collate( LPCTSTR lpsz ) const; 同CString::Compare
CString::CollateNoCase int CollateNocase( LPCTSTR lpsz ) const; 同CString::CompareNoCase
CString::CString CString( ); CString( const CString& stringSrc ); CString( TCHAR ch, int nRepeat = 1 ); CString( LPCTSTR lpch, int nLength ); CString( const unsigned char* psz ); CString( LPCWSTR lpsz ); CString( LPCSTR lpsz ); 例子最容易说明问题 CString s1; CString s2( "cat" ); CString s3 = s2; CString s4( s2 + " " + s3 ); CString s5( 'x' ); // s5 = "x" CString s6( 'x', 6 ); // s6 = "xxxxxx" CString s7((LPCSTR)ID_FILE_NEW); // s7 = "Create a new document" CString city = "Philadelphia";
CString::Delete int Delete( int nIndex, int nCount = 1); 返回值是被删除前的字符串的长度 nIndex是第一个被删除的字符,nCount是一次删除几个字符。根据我实验得出的结果:当nCount>要删除字符串的最大长度(GetCount() - nIndex)时会出错,当nCount过大,没有足够的字符删除时,此函数不执行。 例子 CString str1,str2,str3; char a; str1 = "nihao"; str2 = "nIhao"; int x; // int i=(str1 == str2); str1.Delete(2,3); 如果nCount(3) > GetCount() – nIndex (5-2)就会执行错误
CString::Empty Void Empty( ); 没有返回值 清空操作; 例子 CString s( "abc" ); s.Empty(); ASSERT( s.GetLength( ) == 0 );
CString::Find int Find( TCHAR ch ) const; int Find( LPCTSTR lpszSub ) const; int Find( TCHAR ch, int nStart ) const; int Find( LPCTSTR lpszSub, int nStart ) const; 返回值 不匹配的话返回 -1; 索引以0 开始 nStar 代表以索引值nStart 的字符开始搜索 , 即为包含以索引nStart字符后的字符串 例子 CString s( "abcdef" ); ASSERT( s.Find( 'c' ) == 2 ); ASSERT( s.Find( "de" ) == 3 ); Cstring str(“The stars are aligned”); Ing n = str.Find('e',5); ASSERT(n == 12)
CString::FindOneOf int FindOneOf( LPCTSTR lpszCharSet ) const; 返回值 不匹配的话返回 -1; 索引以0 开始 注意::返回此字符串中第一个在lpszCharSet中 也包括字符并且从零开始的索引值 例子 CString s( "abcdef" ); ASSERT( s.FindOneOf( "xd" ) == 3 ); // 'd' is first match.
CString::Format void Format( LPCTSTR lpszFormat, ... ); void Format( UINT nFormatID, ... ); lpszFormat 一个格式控制字符串 nFormatID 字符串标识符 例子 CString str; Str.Format(“%d”,13); 此时Str为13
CString::GetAt TCHAR GetAt( int nIndex ) const; 返回标号为nIndex的字符,你可以把字符串理解为一个数组,GetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。
CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); 返回值 一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR 指针。 参数 nMinBufLength 字符缓冲区的以字符数表示的最小容量。这个值不包括一个结尾的空字符的空间。 说明 此成员函数返回一个指向CString 对象的内部字符缓冲区的指针。返回的LPTSTR 不是const,因此可以允许直接修改CString 的内容。如果你使用由GetBuffer 返回的指针来改变字符串的内容,你必须在使用其它的CString 成员函数之前调用ReleaseBuffer 函数。 在调用ReleaseBuffer 之后,由GetBuffer 返回的地址也许就无效了,因为其它的CString 操作可能会导致CString 缓冲区被重新分配。如果你没有改变此CString 的长度,则缓冲区不会被重新分配。当此CString 对象被销毁时,其缓冲区内存将被自动释放。 注意,如果你自己知道字符串的长度,则你不应该添加结尾的空字符。但是,当你用ReleaseBuffer 来释放该缓冲区时,你必须指定最后的字符串长度。如果你添加了结尾的空字符, 你应该给ReleaseBuffer 的长度参数传递-1 ,ReleaseBuffer 将对该缓冲区执行strlen 来确定它的长度。 下面的例子说明了如何用CString::GetBuffer。 // CString::GetBuffer 例子 CString s( "abcd" ); #ifdef _DEBUG afxDump << "CString s " << s << "\n"; #endif LPTSTR p = s.GetBuffer( 10 ); strcpy( p, "Hello" ); // 直接访问CString 对象。 s.ReleaseBuffer( ); #ifdef _DEBUG afxDump << "CString s " << s << "\n"; #endif
CString::GetLength int GetLength( ) const; 返回值 返回字符串中的字节计数。 说明 此成员函数用来获取这个CString 对象中的字节计数。这个计数不包括结尾的空字符。 对于多字节字符集(MBCS),GetLength 按每一个8 位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。 示例 下面的例子说明了如何使用CString::GetLength。 // CString::GetLength 示例 CString s( "abcdef" ); ASSERT( s.GetLength() == 6 );
CString::Insert int Insert( int nIndex, TCHAR ch ); int Insert( int nIndex, LPCTSTR pstr ); 返回修改后的长度,nIndex是字符(或字符串)插入后的索引号例子 CString str( “HockeyBest”); int n = str.Insert( 6, “is” ); ASSERT( n == str.GetLength( ) ); printf( “1: %s\n”, ( LPCTSTR ) str ); n = str.Insert( 6, ' ' ); ASSERT( n == str.GetLength( ) ); printf ( “2: %s\n”, (LPCTSTR) STR ); n = str.Insert(555, „1‟); ASSERT( n == str.GetLength ( ) ); printf ( “3: %s\n”, ( LPCTSTR ) str ); 输出 1. Hockeyis Best 2. Hockey is Best 3. Hockey is Best!
CString::IsEmpty BOOL IsEmpty( ) const; 返回值