如何在没有查找表的情况下将表示编码字符(例如 "0x79" 或 "n")的字符串转换为其表示的整数值



标题真的说明了一切。我想将一个字符串传递给一个函数,并让该函数返回适当的整数。

即:

int function(char *encodedString) {
something here;
}

例如:

i = function("0x79");
print("printed output  %x", i); 

打印输出79

使用C标准函数strtol
它的out参数(第二个参数(将告诉您是否应该接受它的结果,或者直接取消对"n""t"等值的引用

#include <stdio.h>
#include <stdlib.h>
int function(char *encodedString) {
char* next;
int answer = strtol(encodedString, &next, 0);
answer = (next-encodedString)? answer : *encodedString;
return answer;
}
int main(void) {
int i = function("0x79");
printf("printed output  0x%02Xn", i);

i = function("n");
printf("printed output  0x%02Xn", i); 

return 0;
}

IDEOne 上的代码

输出:

Success #stdin #stdout 0s 4364KB
printed output  0x79
printed output  0x0A

相关内容

最新更新