gpt4 book ai didi

无法转义c中的ascii字符

转载 作者:行者123 更新时间:2023-11-30 17:12:30 36 4
gpt4 key购买 nike

嘿,伙计们,实际上是 C 编程的新手。我有一个 char 数组,并试图保持元素按顺序排列。我已经成功完成了,但是当我打印数组的元素时,我的代码中会出现额外的字符 ÿ

我的代码

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

char values[4] = "mmfa";
int cmpfunc (const void * a, const void * b)
{
return(*(char*)a - *(char*)b);
}

int main()
{
int n;


qsort(values, 5, sizeof(char), cmpfunc);
printf("\nAfter sorting the list is: \n");

for( n = 0 ; n < 5; n++ )
{
printf("%c ", values[n]);
}

return(0);
}

当我打印这个时,我得到结果ÿ a f m m。我需要删除ÿ..我已经尝试过使用\<转义数组 但它没有成功。那么我如何才能从结果中删除 ascii 代码

感谢您的帮助

最佳答案

char values[4] = "mmfa";

字符串以 \0 终止因此,将数组大小更改为 char values[5] .

注意index 5用于null character .

编辑

     for( n = 0 ; n < 5; n++ )
{
printf("%c ", values[n]);
}

在此循环中n直到 4你的数组在 3 之前的位置.记住数组索引以 0 开头.

同时调用 qsort参数应该是 -

      qsort(values, 4, sizeof(char), cmpfunc);
^because number of elements in array is 4 not 5 .

关于无法转义c中的ascii字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31498683/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com