`
kenby
  • 浏览: 717303 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于c语言字符串

阅读更多

1. strlen(char *str) 返回str中除去结束字符\0的字符数
2. 系统对所有""号内的字符串,无论是全局的和局部的,都会在字符串区域开辟一块内存。例如:
char *p = "hello";
系统为hello开辟一块内存,并把p指向这块内存。
3. 初始化动态分配的字符串不能使用=,应使用strcpy,例如把world追加到hello的末尾:

// 正确的方法
char *p = (char *)malloc(11);
char *str = "world";
strcpy(p, "hello"); /* 要这样赋值 */
strcat(p, str);

// 错误的方法
char *p = (char *)malloc(11);
char *str = "world";
p = "hello"; /* 只是改变p所指的存储区(由堆区到字符串常量区),但没有初始化新分配的字符串 */
strcat(p, str);
5. strcat(char *str1, char *str2)不会动态的增加str1的长度,调用strcat函数时要保证目标串有足够的可以容纳目标串与源串连 接起来的整个串的长度,另外str1不能为空串,

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics