C语言,如何去除字符串数组中的重复元素 1C

定义char a[6][32]={"AAA","BBB","CCC","CCC","CCC,"DDD"},
如何去除数组a中的重复字符串元素?去百度找了找什么双重循环的方法,但是如果有连续3个数一样就会出问题。有没有哪位大佬给指教一下?如果能提供代码希望能测试一下

c

2个回答

 // test1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <string>

using namespace std;

#define STR_NUM 11

bool contain(int num, int flag[], int count)
{
    for (int i = 0; i < count; ++i)
    {
        if (flag[i] == num)
            return true;
    }
    return false;
}

int _tmain(int argc, _TCHAR* argv[])
{
    int flag[STR_NUM] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };//标记哪些字符串重复了,重复的取大的索引值
    int i = 0;

    char a[STR_NUM][32] = { "AAA", "BBB", "CCC", "CCC", "CCC", "DDD", "DDD", "EEE", "FFF", "DDD", "GGG" };

    char res[STR_NUM][32] = {};

    for (int n = 0; n < STR_NUM; ++n)
    {
        for (int m = n + 1; m < STR_NUM; ++m)
        {
            if (strcmp(a[n], a[m]) == 0)
            {
                flag[i++] = m;
            }
        }
    }

    //这样循环以后,flag内就存储了重复的字符串的索引

    i = 0;
    for (int n = 0; n < STR_NUM; ++n)
    {
        if (!contain(n, flag, STR_NUM))
        {
            strcpy_s(res[i], a[n]);
            cout << "res[" << i << "]:" << res[i] << endl;
            i++;
        }
    }

    cin.get();
    return 0;
}

经测试可以实现你的需求

没有考虑效率的问题。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于去除字符串数组中重复元素的程序
最近做了一个关于去除字符串数组中重复元素的程序rn结果如下rnusing System;rnclass testrnrn static void Main()rn rn int j,k=0,flag;rn string[]str=new string[]"aaa","bbb","ccc","aaa","ccc";rn string[]a=new string[5]; //定义新的数组rn a[0]=str[0];rn for(int i=1;i<5;i++)rn rn flag=1;rn j=0;rn while(j<=k) // 循环!有相同元素就标志为0rn if(a[j]==str[i])rn flag=0;rn if(flag==1) //标志不为0则赋值给新的数组元素rn rn k++;rn a[k]=str[i];rn rn rn Console.WriteLine("新的道德数组是:"); //输出新数组元素rn for(j=0;j<=k;j++)rn Console.Write("0 ",a[k]);rn rnrnrnrnrnrn但编译的时候只是出现DOC介面!什么也不显示!而且电脑CPU使用率达到100%!是在逻辑上有什么问题吗?求各位高手指点一二rn
使用TreeSet去除字符串数组里的重复元素
使用TreeSet去除字符串数组里的重复元素
如何去除数组中的重复元素?
使用TreeSet去重import java.util.*; class Main1 { public static void main(String[] args) { TreeSet&amp;lt;String&amp;gt; tr = new TreeSet&amp;lt;String&amp;gt;(); String[] s = { &quot;11&quot;, &quot;22&quot;, &quot;22&quot;, &quot;33&quot;, &quot;33&quot
去除数组中的重复元素
方法一 import java.util.Arrays; public class Mytest1 { public static void main(String[] args) { int[] a = {2, 1, 3, 2, 4, 5, 4, 6, 7, 4, 6, 7, 4}; //先排序,使数组有序 Arrays.sort(a);...
去除js数组中的重复元素
var array = [1,'1',1,'1',true,'true',2,3,2];rn 要求结果为:[1,'1',true,'true',2,3];顺序无要求,但时间复杂度尽可能低,最好是O(n)。给出答案前千万要试运行一遍呐,网上的例子都不行。
去除数组中重复元素
类型总结:双指针问题 说明:遍历时利用2个下标,边遍历边更新。1、26.Remove Duplicates from Sorted Array 从一个包含重复元素的数组里面去除重复的元素,要求不能另外开辟空间思路:由于是一个经过排序的数组,可以设置一个临时变量,从第1个元素(起始是0个)开始遍历,如果遇到不同的,就将其赋值。并且当前index++,存入新的点。遇到相同的这些都不会发生。一开始我想
去除ArrayList中的重复元素
/* 去除ArrayList重复元素 */ class ArrayList { public static void main(String[] args){ al.add("01"); al.add("02"); al.add("03"); al.add("03"); al.add("04"); al.add("07"); al.add("02"); /
字符串数组如何去除空元素
有一个字符串数组,rn(0) = ""rn(1) = ""rn(2) = "a"rn(3) = ""rn(4) = "b"rnrn这种形式的,请问如何能提取a,b到另外一个字符串数组?rn
去除字符串中重复元素
# 内含分隔符的字符串 str1 = 'a,s,d,f,g,h,d,f' sep = ',' list1 = set(str1.spilt(sep) str2 = sep.join(str2) print(type(str2), str2)  
去除重复元素
/* * 文 件 名: FilterRepeat.java * 版 权: * 描 述: &amp;lt;描述&amp;gt; * 修 改 人: simon * 修改时间: 2011-10-9 */ package org.simon.filterrepeat; import java.util.ArrayList; import java.util.Co...
js去除数组的重复元素和去除数组中相邻的重复元素
//去除数组的重复元素 Array.prototype.distinct = function(){ var $ = this; var o1 = {}; var o2 = {}; var o3 = []; var o; for(var i=0;o = $[i];i++){ if(o in o1){ if(!(o in o2)) o2[o] = o;
python去除重复元素,统计重复元素
test_labels_all = [1, 1, 2, 2, 2, 4, 6, 6] ## 去除重复数字 list1 = list(set(test_labels_all)) print(list1) ---&amp;gt;[1, 2, 4, 6] ###统计重复数字出现个数 a = {} for i in test_labels_all: a[i] = test_labels_a...
如何对数组中的重复元素进行去除
在实际开发中肯定会遇到数组中出现重复元素而出现的重复元素又不是自己想要的,那么怎么办呢?下面为大家提供了三种数组去重的方式,希望能够帮到大家。如有更好方法或者好的建议 请留言,大家多多交流共同进步。 #pragma mark - 数组去重的 几种方式 - //part 1  这个是根据相关api判断是否有一样的元素。具体自己体会。 - (void)DeWeightOne {     N
c语言-字符串数组的输入
[code=c]rn#include rnrnint main()rnrn char *a[4];rn a[0] = "ab"; // 执行这句时出现segmentation fault (core dumped);rn a[1] = "bc";rn a[2] = "cd";rn a[3] = "de";rnrn return 0;rnrn[/code]rnrn错误如代码中注释所示,知道原因所在的告诉俺吧,实在被这个问题搞蒙了。
java中set集合如何去除重复元素
set集合是可以重复的元素集合; 用set集合添加一个学生对象元素时:import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set;public class People { String name;
java 数组如何去除重复元素
java 数组如何去除重复元素。。。。。。。。。。。。。。。。。。
c语言的字符串数组
main()rnrn char a[]="china";rn char b[]='c','h','i','n','a','\0';rn char c[]='c','h','i','n','a';rn /*rn char b1[6]='c','h','i','n','a','\0';rn char c1[5]='c','h','i','n','a';rn*/rn printf("%s ",a);printf("%d\n",strlen(a));rn printf("%s ",b);printf("%d\n",strlen(b));rn printf("%s ",c);printf("%d\n",strlen(c));rn/*rn printf("%s ",b1);printf("%d\n",strlen(b1));rn printf("%s ",c1);printf("%d\n",strlen(c1));rn*/rnrnrnrn运行结果:rnchina 5rnchina 5rnchina *^$%(*11 这不懂,会是乱码???rnrn把注释取消后:rnchina 5rnchina 5 rnchina 5 又正常了????rnchina 5rnchina 5 *^$%(*11 这又是乱码了?????
C语言的字符串数组
在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小。第二种没有字符串的大小限制。 #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; //该程序的功能是 输入阿拉伯数字的月份数 输出英文月份 int main() { //一个字符串...
【C语言】字符串数组
1、字符串数组的复制(不使用库函数)/* 在不使用指针和库函数的 条件下 将str1复制到str2当去 */ #include&amp;lt;stdio.h&amp;gt; int main(void){ //数组定义 char str1[50] = &quot;hellobeijin&quot;; char str2[50] = {0}; int i = 0; //肯定是要遍历str1 for(i=0;...
C语言字符串数组
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;string.h&gt; void main() { char s[]={"0"}; int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]&gt;='a'&amp;&amp;s[i]&lt;'z') n++; ...
c语言字符串数组问题
例如rn我定义一个固定长度的字符数组,例如长度为char name[100];rn从键盘输入用户名scanf(name),赋值给这个数组.rn请问如何判断我输入用户名的合法性,即不能包括除了大写和小写的26个字母以外的所有字符.rn多谢指教
ArrayList和HashSet如何去除重复元素
ArrayList和HashSet如何去除重复元素
c语言的字符串数组问题
搞了很久JAVA,发现已经把C语言忘光了,卡在一个问题上rn[code=c]rn#include rnint main(int argc, char *argv[]) rn static const char *classPathName = "com/android/browser/BrowserUtil";rn static const char *hotkeyclassName = "com/iiu/setting/hotkey/MouseUtil";rn static const char *className[2] = classPathName, hotkeyclassName;rn rn int i = 0;rn for(i=0; i < 2; i++)rn rn printf("%s\n", className[i]);rn rn return 0;rnrn[/code]rn上面代码编译出错了,我想在className数组里添加字符串指针,要怎么改才对?
如何去除一个数组中的重复元素?
可能在实际开发中,会遇到这样的一个问题:有一组元素构成的数组,里面存在重复的元素,现在要去除其中重复的元素,即重复的元素只保留一个,如何做到? 一个直接的想法是:用一个数组存放结果,对每个元素,检查其在结果数组中是否存在,如果不存在则放入,如果存在则忽略。由于不确定结果数组的大小,用STL vector存放比较方便。在STL中有个set,即集合。用上它,就能较好地解决这个问题。 #inclu...
C语言,字符串数组
有一个这样的一个字符数组char* sArray = "abcdefghijklmn",另外还有一个int类数组,int* iArray,要求iArray[0]存放sArray中"ab"字符串的地址,iArray[1]存放sArray中"cd"字符串的地址,iArray[2]存放sArray中"ef"字符串的地址...即是将sArray中每两个字符作为一个字符串,iArray存放对应的字符串地址。如果用代码实现呀?自己写的总是有一些问题,好心人请把这几行代码贴出来参考一下,谢过...
求教:字符串数组(C语言)
[size=24px]char *a[n];rn和rnchar (*a)[n];rn有什么区别?[/size]
C语言逆转字符串数组
逆转字符串数组#include <stdio.h> #include <string.h>char* reverse(char *x) { int tem,len=strlen(x); int n=len/2; for(int i=0; i<=n; i++) { tem=x[i]; x[i]=x[len-1-i
C语言:操作字符串数组
任务代码: (1)求最小的姓氏:(对比姓氏开头的ASCII值) #include #include char *min_name(char [][10],int);//返回值是一个字符串,所以是一个指向字符的指针 int main() { char name[5][10]={"Zhao","Qian","Sun","Li","Zhou"}; printf("%s\n",
去除数组中的重复元素---hashset
在日常使用中,如果针对一组数组进行去重,可以使用hashset来实现 如下: import java.util.HashSet; import java.util.Set; public class HashSetDemo { public static void main(String[] args) { Set set = new HashSet(); String uid
python 去除序列中重复元素
首先新建一个集合 set,对于序列中的元素,如果已经在集合中了,我们就不返回这个值。如果不在集合中,就向集合添加这个元素,并返回这个值。key 是函数名,通过修改 key,我们可以改变重复元素的判断依据。 比如对于下面这个序列: a = [{'a': 6, 'b': 4}, {'a': 6, 'b': 3}, {'a': 6, 'b': 4},{'a': 8, 'b': 12}] list(ded...
java中去除数组重复元素
今天这篇文章总结记录下java中去除数组重复元素。 方法一: 创建一个集合,然后遍历数组逐一放入集合,并且在放入之前用contains方法判断集合 中是否已经存在这个元素,如果不存在,则放入,最后用toArray转成数组。 代码如下: public static Object[] arrayDeduplication(Object[] originArray) { List lis...
去除ArrayList中重复元素方式
List 三个子类的特点 Arrlist: 底层数据结构是数组,查询块,增删慢。 线程不安全,效率高。 Vector: 底层数据结构是数组,查询快,增删慢。 线程安全,效率低。 LinkedList: 底层数据结构是链表,查询慢,增删块。 线程不安全,效率高。 去除ArrayList中重复字符串元素方式 public class Demo4 { public static void m...
JavaScript 去除数组中的重复元素
JavaScript 去除数组中的重复元素 &amp;amp;lt;!DOCTYPE html&amp;amp;gt; &amp;amp;lt;html&amp;amp;gt; &amp;amp;lt;head&amp;amp;gt; &amp;amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;amp;gt; &amp;amp;lt;title&amp;amp;gt;去除一个数组中重复的元素&amp;amp;lt
PHP去除数组中的重复元素
方法1: $node_list = array_unique($node_list); $node_list = array_values($node_list); 方法2: // 这个运行效率高 $node_list = array_flip($node_list); $node_list = array_keys($node_list); ...
RF-去除数组中重复元素
1、去除数组中重复元素
去除NSArray中重复元素的方法
有时需要将NSArray中去除重复的元素,而存在NSArray中的元素不一定都是NSString类型。今天想了想,加上朋友的帮助,想到两种解决办法,先分述如下。 利用NSDictionary的AllKeys(AllValues)方法 可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所有键或值,这些键或值都是去重的。 示例代码: NSA...
JS去除数组中重复元素
其实JS去除数组中重复元素,方法很简单,一根都是通过2个循环来处理,但是如果数组总元素过多的时候,这样处理的效率很低;下面看一个比较高效的方法: function unique(data){ data = data || []; var a = {}; for (var i=0; i...
Python去除列表中的重复元素
Python去除列表中的重复元素:三种方法 1.使用set去除重复元素 list1 = [1, 2, 5, 6, 7, 4, 8, 2, 7, 9, 4, 6, 3] list2 = list(set(list1)) print(list2) 输出结果如下: 会改变原列表元素的顺序。 [1, 2, 3, 4, 5, 6, 7, 8, 9] 2.for循环语句 list1 = [1, 2, 5,...
List集合中去除重复元素
fans = articleTagMng.find(f1);         if(!fans.isEmpty()){             for(int i=0;i                 for(int j=fans.size()-1;j>i;j--){                     if(fans.get(i).getName().equals(fans.get
Python——去除列表中的重复元素
set(['I', 'I', 'M', 'E']) set(['I', 'E', 'M']) 集合中,没有重复的元素。利用集合这种数据结构的特性,可以去除列表中的重复元素。 一个列表中可能含有重复元素,使用set()可以实现列表的去重处理,但是无法知道哪些元素是重复的,下面的函数用于找出哪些元素重复了,以及重复的次数。 from collections import Counter a = [1,...
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数