正如标题所说,在我的程序中,我(经过许多程序后)得到标记词。不幸的是,由于颠倒了它们,它们在单词的开头保留了标点符号,例如。,驼鹿
如何,
从头到尾移动->驼鹿,
到目前为止,我已经尝试过(ptr
是char *
):
temp = strdup(ptr);
temp = &ptr[0];
ptr[0] = ptr[1];
ptr[strlen(ptr)-1] = temp;
free(temp);
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:
赋值使指针来自整数而不进行强制转换
警告:赋值从指针生成整数而不进行强制转换
如何解决?
像这样的东西:
void swap_last(char *str)
{
const size_t len = strlen(str);
if(len > 1)
{
const char first = str[0];
memmove(str, str + 1, len - 1);
str[len - 1] = first;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,以上假设str
是有效的。