Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 删除数组中的相同项_C_Arrays - Fatal编程技术网

C 删除数组中的相同项

C 删除数组中的相同项,c,arrays,C,Arrays,我正在开发一个可以从字符数组中删除重复项的函数。问题是该函数适用于一定数量的字符,但如果数组中包含大量术语,则程序无法正常工作。此外,如果重复的术语彼此相邻,则程序不会将其删除 void delete_repeats(char array[],int size){ for(int i = 0; i < size; i++){ for(int j = i + 1; j < size; j++){ if(array[i] == array[

我正在开发一个可以从字符数组中删除重复项的函数。问题是该函数适用于一定数量的字符,但如果数组中包含大量术语,则程序无法正常工作。此外,如果重复的术语彼此相邻,则程序不会将其删除

void delete_repeats(char array[],int size){
    for(int i = 0; i < size; i++){
        for(int j = i + 1; j < size; j++){
            if(array[i] == array[j] || !((array[j] >= 97) && (array[j] <= 122))){
                for(int k = j; k < size; k++){
                    array[k] = array[k + 1];
                    size--;
                }
            }
        }
    }
}
void delete_重复(字符数组[],整数大小){
对于(int i=0;i如果(array[i]==array[j]| |!((array[j]>=97)和&(array[j]您太频繁地减小
大小。移动数组内容后减小
大小。

将大小从该循环移到外循环:

void delete_repeats(char array[],int size){
  for(int i = 0; i < size; i++){
    for(int j = i + 1; j < size; j++){
        if(array[i] == array[j] || !((array[j] >= 97) && (array[j] <= 122))){
            for(int k = j; k < size; k++){
                array[k] = array[k + 1];
            }
            size--;
        }

    }
  }
}

INPUT: Mary had a little lamb
OUTPUT:  Maryhdlitemb
void delete_重复(字符数组[],整数大小){
对于(int i=0;i如果(数组[i]=数组[j],((数组[j]>97))&(数组),现在写什么C,在标题和标记C++ +什么?请下定决心,你写的语言。至少,用户没有标记它的C和C++。哦,玛丽有一个“羔羊”,而不是“灯”。如果你使用C++,考虑<代码> STD::SET/COME >,我一直都在想玛丽和羔羊。