程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C中如何去掉引号大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决C中如何去掉引号?

开发过程中遇到C中如何去掉引号的问题如何解决?下面主要结合日常开发的经验,给出你关于C中如何去掉引号的解决方法建议,希望对你解决C中如何去掉引号有所启发或帮助;

我们如何去除引号,例如如果我们有:"film" 并且我们想要返回 film
我的代码:

char* remove_quotes(char* s1) {
    if (s1[0] == '"' && s1[strlen(s1) - 1] == '"') {
        s1[0] = '\0';
        s1[strlen(s1) - 1] = '\0';
    }
    return s1;
}

应该是这样的吧?

解决方法

  • s1[0] = '\0'; 将阻止 strlen(s1) 返回正确的值。
  • 您应该返回 s1 + 1 而不是 s1 以跳过第一个引号(或引号所在的空格)。

试试这个:

char* remove_quotes(char* s1) {
    if (s1[0] == '"' && s1[strlen(s1) - 1] == '"') {
        s1[strlen(s1) - 1] = '\0';
        return s1 + 1;
    }
    return s1;
}

如果您希望将两个 " 从原始字符串中删除,您可以通过 @H_935_3@memmove() 移动内存的内容,而不是移动指针。 (不要使用 strcpy() 或 @H_935_3@memcpy(),因为它们不支持复制到重叠的目的地)

char* remove_quotes(char* s1) {
    size_t len = strlen(s1);
    if (s1[0] == '"' && s1[len - 1] == '"') {
        s1[len - 1] = '\0';
        memmove(s1,s1 + 1,len - 1);
    }
    return s1;
}
,

移除功能比较简单。只要有两个指针。

#include <stdio.h>

char *strdelch(char *str,char ch)
{
    char *current = str;
    char *tail = str;

    while(*tail)
    {
        if(*tail == ch)
        {
            tail++;
        }
        else
        {
            *current++ = *tail++;
        }
    }
    *current = 0;
    return str;
}

int main(void)
{
    char str[] = "Hell`o` ```w`o``r`l```d`!```";

    printf("%s\n",strdelch(str,'`'));
}

https://godbolt.org/z/M7n8EExoc

大佬总结

以上是大佬教程为你收集整理的C中如何去掉引号全部内容,希望文章能够帮你解决C中如何去掉引号所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: