c - 尝试删除 C 中字符数组中的最后一个字符

标签 c string arrays null-terminated

所以我写了以下方法:

void removeEndingColon(char *charArrayWithColon) {
    // remove ':' from variableName
    size_t indexOfNullTerminator = strlen(charArrayWithColon);
    charArrayWithColon[indexOfNullTerminator - 1] = '\0'; // replace ':' with '\0'
}

但是当我在 eclipse 中使用以下代码对其进行测试时,我没有得到任何输出,并且我不知道为什么我的可执行文件无法运行。

char *charArray1 = "ThisHasAColonAtTheEnd:";
removeEndingColon(charArray1);

最佳答案

char *charArray1 = "ThisHasAColonAtTheEnd:";` 

此处将 charArray1 指向字符串文字。在 C 中,您无法修改文字。参见例如this question

您可以将字符串存储在可以修改的数组中。所以就这样做

char charArray1[] = "ThisHasAColonAtTheEnd:"; 

关于c - 尝试删除 C 中字符数组中的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20056587/

相关文章:

c - strcmp 只返回 0(回文算法错误)

c - 如何将文本文件复制到C中的字符串?

c - C 中的树遍历和串联崩溃

c# - C++ LPSTR 到 C# 字符串 .Net Wrapper

c++ - 有没有办法让 C 宏关键字不可知?

在c中使用opencv裁剪图像

c++ - 从 dll 返回多个字符串

javascript - 创建 Canvas 对象数组

c++ - 从数字数组中查找可能的字母字符串数

php - 为什么 array_udiff 使用比较函数而不是谓词函数?