假设我有char x[3] = "123";,我想只转换23char数组的索引1和index2" ",我能做到atoi吗?
我知道我可以做到,char z[2]; z[0]=x[1]; z[1]=x[2]; atoi(z);但这不是我要求的.
你可以这样做
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.