C程序删除字符串中所有重复的字符

路西法

我想从字符串中删除所有重复的字符。例如,如果我有:

“ aapuroo”

我希望结果是

麻烦

但它显示

紫杉

我在这里有什么错误?我是一个初学者,请原谅我的错误

#include <stdio.h>
#include<string.h>

int main()
{
    char str[100];
    int i,j,k,n;
    gets(str);

    n = strlen(str);

    for(i=0; i<n; i++)
    {

        for(j=i+1; j<n;j++)
        {
             if(str[i] == str[j])
             {
                 str[j] = str[j+1];
             }

        }
    }

    puts(str);

    return 0;
}
来自莫斯科的弗拉德

该方法无效。考虑一个像这样的字符串char str[] = "111";

所以在这些循环中

for(i=0; i<n; i++)
{

    for(j=i+1; j<n;j++)
    {
         if(str[i] == str[j])
         {
             str[j] = str[j+1];
         }

    }
}

str[0]等于tp '1'str[1]也等于'1'因此str[1]被替换str[2]也等于tp '1'结果,您将获得数组包含字符串"11"

而且,内部循环不仅处理字符串中相邻的重复字符,还处理所有重复的字符。

请注意,该功能gets是不安全的功能,C标准不再支持该功能。改用标准功能fgets

该程序可以如下所示

#include <stdio.h>

int main()
{
    enum { N = 100 };
    char str[N];

    fgets( str, N, stdin );

    for ( size_t i = 0, j = 0;  str[i] != '\0'; )
    {
        if ( str[++i] != str[j] && str[i] != '\n' ) 
        {
            if ( i != ++j ) str[j] = str[i];
        }           
    }

    puts( str );

    return 0;
}

如果输入字符串,"aapuroo"则程序输出为

apuro

str[i] != '\n'存在if语句中使用的子表达式,因为该函数fgets可以将换行符附加到输入的字符串中。因此,此子表达式用于从结果字符串中排除换行符。或者您可以在循环之前删除此字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除所有重复的字符串

来自分类Dev

在R中,删除字符串中所有其他字符的子字符串

来自分类Dev

如何删除字符串向量中所有最长的字符串

来自分类Dev

C#全文搜索字符串格式:字符串删除所有相邻的重复项,并附加“与”,“或”

来自分类Dev

计算字符串C#中所有子字符串的出现次数

来自分类Dev

Javascript删除字符串中所有开头和结尾的垃圾字符

来自分类Dev

使用模式删除字符串中所有出现的两个字符

来自分类Dev

删除cPanel中所有文件中包含字符串的所有行

来自分类Dev

查找字符串中所有重复的子字符串以及它们出现的频率

来自分类Dev

使用python获取字符串中所有重复子字符串的计数

来自分类Dev

获取字符串中所有字符的数值

来自分类Dev

如何计算字符串中所有字符的出现?

来自分类Dev

如何用制表符替换字符串中所有重复的空格

来自分类Dev

Java Regex:匹配字符串中所有重复出现的序列

来自分类Dev

Android让人头疼的字符串:如何在应用程序中集中所有字符串?

来自分类Dev

C-使用printf原始打印字符串中所有不可打印的字符

来自分类Dev

C程序从字符串中删除所有不必要的空格

来自分类Dev

如何删除Android Studio中所有配置的未使用字符串资源?

来自分类Dev

使用javascript删除字符串中所有非字母数字和任何空格

来自分类Dev

删除文件中所有以特定字符串开头和结尾的行

来自分类Dev

c#删除所有包装字符串的div

来自分类Dev

从JSON字符串中获取所有值并删除所有重复项

来自分类Dev

字符串删除所有字母

来自分类Dev

如何替换JavaScript中所有出现的字符串?

来自分类Dev

如何查找emacs中所有出现的字符串?

来自分类Dev

获取Robolectric中所有语言的字符串

来自分类Dev

获取文本中所有与模式匹配的字符串

来自分类Dev

替换数据框中所有出现的字符串

来自分类Dev

解析php中所有匹配模式的字符串

Related 相关文章

  1. 1

    删除所有重复的字符串

  2. 2

    在R中,删除字符串中所有其他字符的子字符串

  3. 3

    如何删除字符串向量中所有最长的字符串

  4. 4

    C#全文搜索字符串格式:字符串删除所有相邻的重复项,并附加“与”,“或”

  5. 5

    计算字符串C#中所有子字符串的出现次数

  6. 6

    Javascript删除字符串中所有开头和结尾的垃圾字符

  7. 7

    使用模式删除字符串中所有出现的两个字符

  8. 8

    删除cPanel中所有文件中包含字符串的所有行

  9. 9

    查找字符串中所有重复的子字符串以及它们出现的频率

  10. 10

    使用python获取字符串中所有重复子字符串的计数

  11. 11

    获取字符串中所有字符的数值

  12. 12

    如何计算字符串中所有字符的出现?

  13. 13

    如何用制表符替换字符串中所有重复的空格

  14. 14

    Java Regex:匹配字符串中所有重复出现的序列

  15. 15

    Android让人头疼的字符串:如何在应用程序中集中所有字符串?

  16. 16

    C-使用printf原始打印字符串中所有不可打印的字符

  17. 17

    C程序从字符串中删除所有不必要的空格

  18. 18

    如何删除Android Studio中所有配置的未使用字符串资源?

  19. 19

    使用javascript删除字符串中所有非字母数字和任何空格

  20. 20

    删除文件中所有以特定字符串开头和结尾的行

  21. 21

    c#删除所有包装字符串的div

  22. 22

    从JSON字符串中获取所有值并删除所有重复项

  23. 23

    字符串删除所有字母

  24. 24

    如何替换JavaScript中所有出现的字符串?

  25. 25

    如何查找emacs中所有出现的字符串?

  26. 26

    获取Robolectric中所有语言的字符串

  27. 27

    获取文本中所有与模式匹配的字符串

  28. 28

    替换数据框中所有出现的字符串

  29. 29

    解析php中所有匹配模式的字符串

热门标签

归档