1. string是类,不是数据类型。所有的string类都是以C-style字符串为基础的,C-style字符串是字符数组。
字符编码类型有:单字节字符集-SBCS;多字节字符集-MBCS,包括两种字符类型-单字节字符(SBCS)和双字节字符(DBCS);Unicode,所有字符都使用两个字节编码。
SBCS、DBCS编码的字符串都是用一个字节表示的0作为结束标志;Unicode用两个字节表示的0作为结束标志。
2. 通常使用的数据类型char,为单字节字符集。奇怪的是双字节字符集也用char数据类型。Unicode字符串使用wchar_t数据类型。
3. 对char进行处理的函数有:
/*
strcat:将strSource附加到strDestination末尾
strcpy:将strSource复制到strDestination。
*/
char *strcat( char *strDestination, const char *strSource );
char *strcpy( char *strDestination, const char *strSource );
char string[80];
strcpy( string, "Hello world from " );
strcat( string, "strcpy " );
strcat( string, "and " );
strcat( string, "strcat!" );
printf( "String = %s/n", string );
/*结果为Hello world from strcpy and strcat!*/
/*
两个非空字符串比较,返回值<0-string1 less than string2,
小写字母大于大写字母。
_stricmp( string1, string2 )-忽略字母大小写
*/
int strcmp( const char *string1, const char *string2 );
/*得到非空字符串string的长度*/
size_t strlen( const char *string );
char buffer[61] = "How long am I?";
size_t len;
len = strlen( buffer );
printf( "'%s' is %d characters long/n", buffer, len );
/*结果为14*/
以上介绍了,对字符串(char类型数组)的处理函数。查找:strchar,strstr。复制:strcpy。比较:strcmp。追加:strcat。长度:strlen。
这些函数都在string.h中申明,需要引用该头文件才能使用。
4. 字符串(char数组)转换为数据
这些函数被定义在stdlib.h中。
5. 数据转换为字符串(字符数组)
/*将长整型转为字符串*/
char *_ltoa(
long value,
char *str,
int radix
);
/*将double转为字符串.
value-被转换的数字,count-要存储的位数,dec-转后所得字符串中10进制的小数点所在位置,sign-0表示数字为正,其他为负。
返回值为指向所得字符串的指针
*/
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt( source, precision, &decimal, &sign );
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d/n", source, buffer, decimal, sign );
/**结果为:source: 3.1415926535 buffer: '3141592654' decimal: 1 sign: 0*/
这些函数也定义在stdlib.h中。
原文链接: https://www.cnblogs.com/whuqin/archive/2011/03/07/4982107.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/21928
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!