我需要从字符串中获取最后一个字符。假设字符串如下所示:
blue;5
我想我可以使用 strlen,然后减去 1 得到 5。我尝试了很多不同的方法,但没有一种有效。这就是我认为它应该看起来或做的方式,但我知道它不起作用。有什么建议吗?这是我的代码伪代码。我知道由于各种原因它不起作用,但它是我想到的流程。
len = strlen(Input);
Position = Input[len - 1];
strcpy(value, Input[Position]);
len = strlen(Input); //ok
在这里你走错了.将字符放入整数是不正确的。你需要这个。
Position = Input[len - 1]; //incorrect
做成
Position = strlen(Input) - 1 //correct
strcpy(value, &Input[Position]);//ok
如果你真的想要最后一个字符,那么你可以使用strlen()
,但不是那样,而是像这样
char string[] = "blue;5";
int position = strlen(string) - 1;
char last = string[position];
printf("%cn", last);
请注意,last
不是字符串,而是单个字符,而单个字符又是 string
中最后一个字符的 ASCII 值,您可以使用"%c"
printf()
说明符打印它的表示形式。
@Iharob已经发布了一些代码,允许您将最后一个字符作为字符访问。但是如果你想要一个字符串,你可以这样做,因为它在最后,所以 NUL 终止:
const char * lastword = string + (strlen(string) - 1);
printf("%s", lastword);
请注意,"%s" - 最后一个字是"字符串",而不是字符。它只是一个字母长的字符串。
你想象的更接近解决方案:
len = strlen(Input);
strcpy(value, &Input[len - 1]); // copy last character
strcpy
需要一个指向最后一个字符的指针。