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