获取字符长度 ,中文也可以获取
#include <stdio.h>#define MAX 1024
int main()
{
char str;
char *target = str;
char ch;
int length = 0;
printf("请输入一个字符串:");
fgets(str, MAX, stdin);
while (1)
{
ch = *target++;
if (ch == '\0')
{
break;
}
if ((int)ch < 0)
{
target += 2;
}
length++;
}
printf("您总共输入了 %d 个字符!\n", length - 1);
return 0;
}
if ((int)ch < 0)
{
target += 2;
}这个没有看懂能解释一下嘛
因为在大部分的编译器环境里面,中文字符都是占两个字节的
占几个字节就加几个 qiuyouzhi 发表于 2020-4-21 16:03
因为在大部分的编译器环境里面,中文字符都是占两个字节的
占几个字节就加几个
while (1)
{
ch = *target++;
if (ch == '\0')
{
break;
}
if ((int)ch < 0)
{
target += 2;
}
length++;
}大佬这个ch = *target++ 那个++不是优先于 *相当于*(target++)那是不是代表从 target+1开始了 没有target可以指导一下吗谢谢<img src="https://fishc.com.cn/static/image/smiley/ARU/aru-1x-1_131.png" smilieid="298" alt="" border="0"> 雨如洁 发表于 2020-4-21 16:26
++会在下一次循环时才起作用。
页:
[1]