C 实现 strncat 函数 当出现中文冒号时字符数不对
#include <stdio.h>#define MAX 1024
int main()
{
char str1;
char str2;
int count = 0;
char *p = str1;
char *q = str2;
char *t = str2;
int i,num;
printf("请输入第一个字符串:");
fgets(str1, MAX, stdin);
printf("请输入第二个字符串:");
fgets(str2, MAX, stdin);
printf("请输入需要连接的字符数:");
scanf("%d", &num);
while(*p++ != '\0')
{
// count++;
;
}
if(*--p == '\0')
{
--p;
while(count <= num)
{
char ch = *t++;
if(ch == '\0')
{
break;
}
if((int)ch < 0)
{
t += 2;
}
*p = *q;
q++;
p++;
count++;
}
}
// printf("count = %d\n", count);
printf("连接后的结果是:%s\n", str1);
return 0;
}
哪个大哥帮我检查下啥问题啊……
新手难受
就是英文冒号就没有问题,中文冒号我查过了也是为负啊= =(这是带你学C带你飞的S1E22的课后作业) 就是想知道自己的算法哪里出了问题
算法是没有问题的,应该是字符个数错了:
一个账号 发表于 2020-2-5 10:27
算法是没有问题的,应该是字符个数错了:
我就是说不知道字符个数这里哪里出了问题= = TAT想求个大神帮帮忙 另外在线求一位喜欢做题 带我学代码 带我飞的大哥TAT 汉字字符是很麻烦的。可以使用sizeof()直接求整个字符串的长度。对字符不懂的话建议你去看小甲鱼windows编程的第3集。里面介绍了字符集。可能会很复杂。 有些汉字字符占两个字节。也有些占三个或者4个。 或者你也可以去看一篇文章。https://blog.csdn.net/revilwang/article/details/8763911 召唤风云 发表于 2020-2-6 11:22
或者你也可以去看一篇文章。https://blog.csdn.net/revilwang/article/details/8763911
谢谢,之前上班有段时间没上来了… 之后复习的时候再修改学习,继续做作业了!
页:
[1]