gpt4 book ai didi

c - 文本转十进制 C

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:16 25 4
gpt4 key购买 nike

手动转换。

比如input = axe,为什么'a'(97)的dec总是死循环?

不能移动到 'x' dec 和 'e' 吗?

//project text to ASCII Dec
#include <stdio.h>

main(){
char i=0, data, a;

printf("Enter data : ");
scanf("%s", &data); //or %c

while(data != i){ /* can't out from this loop I mean to the next letter of word */
a = data;
printf("%d", data); // or printf("%d", a);
if(data != 0){
printf("-");
}
}
}

最佳答案

您已将 data 声明为 char 类型,这意味着它只能保存一个单个 字符值('A''、'1''0''\n' 等)。

如果您希望能够将字符串存储到数据(例如“axe”“foo”"Supercalifragilisticexpialidocious"),那么您需要将 data 声明为 char数组,并且数组大小必须至少比您打算存储的最长字符串的长度长一:

#define STRING_LENGTH 20 // store strings *up to* 20 characters long
...
char data[STRING_LENGTH + 1]; // +1 for the 0 terminator that marks
// the end of the string

至于无限循环,'a' (97) 永远不会等于 i (0),并且您永远不会更新循环中任一实体的值.每次循环都必须更新一个或另一个。这就是我认为您想要的:

if ( fgets( data, sizeof data, stdin ) ) // safer than using scanf
{
for ( size_t i = 0; data[i] != 0; i++ )
{
printf( "%d ", data[i] ); // print out character encoding value
}
}

此代码接受用户输入的字符串,并将每个字符(ASCII、EBCDIC、UTF-8 等)的编码值打印为整数。

关于c - 文本转十进制 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47686841/

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