我正在开发一个可以从字符数组中删除重复项的函数。问题是该函数适用于一定数量的字符,但如果数组中有很多术语,则程序将无法正常工作。此外,如果重复的术语彼此相邻,程序不会将其删除。
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--;
}
}
}
}
}
示例:
原始数组包含:玛丽有一盏小灯
程序运行后:maryhdliitttlelaampp
最佳答案
将大小从该循环移到外循环中:
void delete_repeats(char array[],int size){
for(int i = 0; i < 大小; i++){
for(int j = i + 1; j < 大小; j++){
if(数组[i] == 数组[j] || !((数组[j] >= 97) && (数组[j] <= 122))){
for(int k = j; k < 大小; k++){
数组[k] = 数组[k + 1];
}
尺寸 - ;
}
}
}
}
输入:玛丽有一只小羊羔
输出:Maryhdlitemb
关于c - 删除数组中相同的项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713565/