我写的程序需要删除&符号,如果它是字符串的最后一个字符。例如,如果char* str
包含"firefox&"
,那么我需要删除&符号,以便str
包含"firefox"
。有谁知道怎么做?
答案 0 :(得分:5)
只需将最后一个字符设置为'\ 0':
str[strlen(str)-1] = '\0';
在C中,\0
表示字符串结尾。
答案 1 :(得分:1)
C中的每个字符串都以' \ 0'结尾。所以你需要这样做:
int size = strlen(my_str); //Total size of string
my_str[size-1] = '\0';
这样,你删除了最后一个字符。
答案 2 :(得分:0)
为了安全起见:
if (str != NULL)
{
const unsigned int length = strlen(str);
if ((length > 0) && (str[length-1] == '&')) str[length-1] = '\0';
}
答案 3 :(得分:0)
仅供参考,标准函数strchr
就是这样做的。它有效地将字符串拆分到给定的字符集上。它通过用0x00
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "This is a firefox& string";
char * pch;
printf ("Looking for the '&' character in \"%s\"...\n",str);
pch=strchr(str,'&');
while (pch!=NULL)
{
printf ("found at %d\n",pch-str+1);
pch=strchr(pch+1,'&');
}
return 0;
}
答案 4 :(得分:0)
检查最后一个字符,如果是'&amp;',请将其替换为'\ 0'(null terminator):
int size = strlen(my_str);
if (str[size - 1] == '&')
str[size - 1] = '\0';