欢迎光临
我们一直在努力

plc的c程序语言编程,避坑语言

void test_strlen_exc(char *str_buff)

{

? ? int i = 0;

? ? for (i=0; i<strlen(str_buff); i++)

? ? {

? ? ? ? ? printf(“%c\r\n”,str_buff++);

? ? }

}

?

void main(void)

{

? ? ? ?char str_buff[20] = {“abcdef123456”};

? ? ??test_strlen_exc(str_buff);

}

?

输出的结果只有 abcdef ,后面的 123456 并没有打印出来;

这是因为 在?for (i=0; i<strlen(str_buff); i++)? ??strlen(str_buff) 计算长度时?str_buff 是一个指针,str_buff++指针向后移动,导致长读不断的减少,所以只能有一半打印出来了;

修改为:

void test_strlen_exc(char vps云服务器 *str_buff)

{

? ? int i = 0;

? ? int len = 0;

? ??len = strlen(str_buff);? //在for 循环之前先把长度获取,这样就不会出问题;

? ? for (i=0; i<len ; i++)

? ? {

? ? ? ? ? printf(“%c\r\n”,str_buff++);

? ? }

}

?

?

?

76718052

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。