保留重复出现的字符串

来源:互联网 发布:java线程应用场景 编辑:程序博客网 时间:2024/06/10 09:49
#include<stdio.h>#include<string.h>void SaveSameString(char **name,int num){    int i,j,k=0,flag;    char* temp;    char *Output[num+1];    for(i=0;i<num;i++)    {        flag=0;        temp=name[i];        for(j=i+1;j<num;j++)        {            if(strcmp(temp,name[j])==0)            {                flag=1;                name[j]="";            }        }        if(flag==1&&name[i]!="")            Output[k++]=name[i];    }}int main(){    char *name[5]={"ss","aa","bb","aa","ss"};    SaveSameString(name,5);}

面试的时候参加一个笔试,其中一道编程题就是这道题目,题目强调只能用C语言去写,不能用c++,更不能用STL;平常都是c++编的,都忘了c语言中的字符串的数组,当时还用了string!回来c编写一边才发现这样的写是错误的!!!

C语言中定义字符数组的方式有2中:

char name[][5]={"ss","aa","bb","aa","ss"};改方式在调用函数void SaveSameString(char **,int num)时报错,

char *name[5]={"ss","aa","bb","aa","ss"};这种方式可以不再数组定义的时候指定字符串的长度,但是注意字符串的个数是一定要指定的,像这样写 char **name 是不行的。这样定义的好处就是可以定义一个二维指针char **pointer = name;

0 0