我只是想从字符串中删除最后一个字符。这不是做作业,所以您可以帮助我。 (C编程)
我用Google搜索了不同的内容。这看起来很简单,但是无论我尝试了什么,都行不通。
char cc[100] = "no u)";
我要删除')'
没有错误消息,因为我只是想在不使用')'的情况下打印cc
printf("\n Enter a word\n");
char scan[100];
char* cc;
fgets(scan, 100, stdin);
if (strncmp(scan, "encrypt", 7) == 0)
{
cc = scan + 8;
printf("%s", cc);
cc[strlen(cc)-1] = '\0';
printf("%s", cc);
}
答案 0 :(得分:1)
在this answer中,您可以用空终止符\0
替换数组中的“最后一个”字符。
#include<string.h>
char cc[100] = "no u)";
cc[strlen(cc)-1] = '\0';
请注意,如果cc
为空,则会导致未定义的行为-您可能想确保strlen
首先为非零。
答案 1 :(得分:0)
int main(void)
{
char cc[100] = "no u)";
printf("%.*s", strlen(cc)-1, cc);
return 0;
}
Success #stdin #stdout 0s 4400KB
no u
在代码中,您的字符串是:"encrypt(how are you)\n\0"
。
当您尝试用\0
替换最后一个字符时,您将覆盖\n
,而不是最终的)
。
因此,您的字符串变为:"encrypt(how are you)\0\0"
,但仍具有最后的)
。
在编写代码时,请确保您考虑了\n
。