[英]Convert array of int (decimal equivalent to a character in ASCII) to a string in C language
[英]Decimal string to character ASCII conversion - C
有人可以解释如何将十进制值的字符串从ASCII表转换为C中的字符“表示”吗? 例如:用户输入可能是097,并且该功能将在屏幕上打印“ a”,但是用户也可以键入“ 097100101”,并且该功能将必须打印“ ade”等。我写了一些笨拙的东西,但与此相反操作:
char word[30];
scanf("%s", word);
while(word[i]!=0)
{
if(word[i]<'d')
printf("0%d", (int)word[i]);
if(word[i]>='d')
printf("%d", (int)word[i]);
i++;
}
但它有效。 现在,我希望具有以类似方式工作的功能,但当然可以进行十进制> char转换。 关键是,我不能使用诸如“ atoi”之类的任何功能(诸如不确定名称,从未使用过它们;)。
您可以使用此函数代替atoi:
char a3toc(const char *ptr)
{
return (ptr[0]-'0')*100 + (ptr[1]-'0')*10 + (ptr[0]-'0');
}
因此, a3toc("102")
将返回与(char) 102
相同的东西,它是一个'f'
。
如果您不明白为什么,请替换以下值: ptr[0]
为'1'
,因此第一部分变为('1'-'0')*100
或1*100
或100
,即第一部分102
1
代表。
标记输入字符串。 我假设您强迫每个字母必须以3个字符表示。 因此,以这种方式断开字符串。 并且只需使用显式类型转换即可获得所需的字符。
我认为我不应该为此提供代码,因为它非常简单,而且更像是一个作业问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.