atoi从定义的索引转换为字符串到字符串

joh*_*han 3 c linux atoi

假设我有char x[3] = "123";,我想只转换23char数组的索引1和index2" ",我能做到atoi吗?

我知道我可以做到,char z[2]; z[0]=x[1]; z[1]=x[2]; atoi(z);但这不是我要求的.

Ale*_*s G 6

你可以这样做

char x[4];
int i;

strcpy(x, "123");
i = atoi(x + 1);
Run Code Online (Sandbox Code Playgroud)

因为x是指向char的指针,x + 1是指向下一个char的指针.如果您尝试打印

printf("%s", x + 1);
Run Code Online (Sandbox Code Playgroud)

你得到23的输出.

请注意,您需要声明char数组的长度比其中的字符数多一个 - 以容纳结尾\0.