for (p = s; *p; p++)//这一句不知道在干啥,那位解释一下。

dfczj 2007-05-09 10:48:24
例如:"R12"+1 == "R13" "R99"+1=="S00" "R19"+1=="R20"
加1后返回字符串 ~~~
--------------------------------------------

#include <stdio.h>
#include <string.h>

void string_inc(char *s)
{
char *p;
char c;

p = s;
for (p = s; *p; p++)//这一句不知道在干啥,那位解释一下。
;

c = 0;
p--;
(*p)++;
for (; p >= s; p--)
{
*p +=c;
switch (*p)
{
case '9' + 1:
*p = '0';
c = 1;
break;

case 'z' + 1:
c = 1;
*p = 'a';
break;

case 'Z' + 1:
c = 1;
*p = 'A';
break;

default:
c = 0;
}
}
}

int main(void)
{
char *ss[] = {"R12", "R99", "R19", "R12", "Rz9", "Ra9"};
char s[4];
int i, n;

n = sizeof(ss)/sizeof(ss[0]);
for (i = 0; i < n; i++)
{
strcpy(s, ss[i]);
printf("%s + 1 = ", s);
string_inc(s);
printf("%s\n", s);
}

return (0);
}

...全文
642 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Benny_ywb 2007-05-10
  • 打赏
  • 举报
回复
for (p = s; *p; p++) 有人说了,指向字符串结尾
bargio_susie 2007-05-09
  • 打赏
  • 举报
回复
还是说你哪里看不懂吧..

先自己单步跟踪一下啊,这样收获应该大些
dfczj 2007-05-09
  • 打赏
  • 举报
回复
那位看得懂的,这段程序全都注释一下吧,多谢
jlxys 2007-05-09
  • 打赏
  • 举报
回复
p指向字符串结尾

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧