posts - 403, comments - 310, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

几个C的字符串操作代码

Posted on 2007-07-08 21:05 ZelluX 阅读(495) 评论(2)  编辑  收藏 所属分类: C/C++
很简短,有点trick的感觉,就像小学里写的那些(n-1) mod x + 1。进了大学后很少写类似风格的代码了,这些用在java项目中就要因为可读性被bs了。
1. 计算串长度 strlen(a)
for (i = 0; a[i] != 0; i++); return i;

2. 复制 strcpy(a, b)
for (i = 0; (a[i] = b[i]) != 0; i++);

3. 比较 strcmp(a, b)
for (i = 0; a[i] == b[i]; i++)
    if (a[i] == 0) return 0;
return a[i] - b[i];
注意适用于不同长度的字符串

指针版本
1. strlen(a)
b = a; while (*b++); return b - a - 1;

2. strcpy(a, b)
while (*a++ = *b++);

3. strcmp(a, b)
while (*a++ = *b++)
    if (*(a-1) == 0) return 0;
return *(a-1) - *(b-1);




评论

# re: 几个C的字符串操作代码  回复  更多评论   

2007-07-09 16:37 by BZBJ
为什么我觉得应该是 "\0" 而不是 "0"

# re: 几个C的字符串操作代码  回复  更多评论   

2007-07-09 20:02 by ZelluX
是'\0'吧?
'\0'和0不是一样的吗?

只有注册用户登录后才能发表评论。


网站导航: