字符串、字符、字节

1、strlen的原型

size_t strlen( char const *string);    //size_t是一个无符号数
所以:
if( strlen( x ) >= strlen( y ) )    //是可以的
if( strlen( x ) - strlen( y ) >= 0 )    //条件永真,因为无符号数相减还是无符号数,而无符号数永不为负。

2、strcpy(支持链式编程)

char *strcpy( char *dst , char const *src);    //目标区域如果不足够放下源字符串,多余的字符仍被复制,覆盖原先存储于数组后面的内存空间的值

3、strcat(支持链式编程)

char *strcat( char *dst, char const *src);    //保证目标字符数组剩余的空间足以保存整个源字符串

4、strcmp

int strcmp( char const *s1, char const *s2);    //等于0代表相等,s1>s2返回大于0(不一定是1,只是个选择)

5、长度受限的字符串函数

char *strncpy( char *dst, char const *src, size_t len);
char *strncat( char *dst, char *src, size_t len);
int strncmp(char const *s1, char const *s2, size_t len);
//strncpy将len个字符复制到dst中,如果strlen(src) < len,用NUL字节填充LEN长度
//如果strlen(src) >= len,那么只有len个字符被复制到dst中,最后一个字符并非NUL。
//在strncpy后使用strlen可能就会出错

所以,经常在数组末尾手动加上字符串结束符:

char buffer[bsize];
strncpy( buffer, name, bsize);
buffer[bisize - 1] = ‘\0‘;
时间: 2024-10-26 08:49:35

字符串、字符、字节的相关文章

c# 判断字符是否是全角, 获取字符串的字节数 , 获取字符串指定长度字节数的字符串

1 Encoding.Default.GetByteCount(checkString);  =2 全角 =1 半角 /// <summary> /// 获取字符串的字节长度 /// </summary> /// <param name="str"></param> /// <returns></returns> public static int GetStringByteLength(this string s

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

1 //计算 num 的 n 次幂 2 function numPow(num, n) { 3 if (n == 1) { 4 return num; 5 } 6 return num * numPow(num, n - 1); 7 } 8 9 //计算 n 的阶乘 10 function nFactorial(n) { 11 if (n == 1) { 12 return 1; 13 } 14 return n * nFactorial(n - 1); 15 } 16 17 //斐波那契数列,

求一个字符串的字节长度

编写一个方法 求一个字符串的字节长度 假设:一个英文字符占用一个字节,一个中文字符占用两个字节 function GetBytes(str){ var len = str.length; var bytes = len; for(var i=0; i<len; i++){ if (str.charCodeAt(i) > 255) bytes++; } return bytes; } alert(GetBytes("你好,as"));

C# 16进制与字符串、字节数组之间的转换

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2)); //十进制转八进制 Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8)); //十进制转十六进制 Console.WriteLine("十进制166的十六进制表示: "+Con

C# 字符串按字节截取

/// <summary> /// 截取指定字节长度的字符串 /// </summary> /// <param name="str">原字符串</param> /// <param name="startIndex">起始位置</param> /// <param name="len">截取字节长度</param> /// <returns&g

python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)

进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上,直接上例子 整数之间的进制转换: 10进制转16进制: hex(16)  ==>  0x10 16进制转10进制: int('0x10', 16)  ==>  16 类似的还有oct(), bin() ------------------- 字符串转整数: 10进制字符串: int('10')  ==>  10 16进制字符串: int('10', 16)  ==>  16 16进

C# 16进制与字符串、字节数组之间的转换(转)

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串   //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2)); //十进制转八进制 Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8)); //十进制转十六进制 Console.WriteLine("十进制166的十六进制表示: "+C

【java解惑】字符串的字节数组构造函数使用

如下代码: public class Example018 { public static void main(String[] args) { byte bs[] = new byte[256]; for (int i = 0; i < 256; i++) { bs[i] = (byte) i; } string(bs);// 调用1 string(bs, "iso-8859-1");// 调用2 string(bs, "gbk");// 调用3 strin

4.python2与python3编码区别,以及字符串与字节的相互转换及其socket编程应用场景

知识点剖析 1.python2与python3的某些区别 其实一直想写这篇博客,实则在socket编程中,字符串,字节(byte),和bit流把我弄得晕头转向.确实这也是python3与python2的区别所在.我想在12期的时候,刚从python2转到python3的沛齐与Alex老师也是十分头疼,最近几天查看了相关资料与视频,才恍然大悟. 首先我们看一下下面的实例: 原因:在python2.7中,for循环遇到汉字,依然会按照字节进行循环,那么3个字节才能组成的汉字,单个输出只能时乱码. 解

[email&#160;protected]求一个字符串的字节长度

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>@求一个字符串的字节长度</title></head><body></body> <script> function GetBytes(str) { var len = str.length; var bytes