안녕하세요,문자열에서 중복을 제거하는 방법
문자열에서 중복 된 문자를 삭제하려고합니다. 루프가 제대로 작동하지 않습니다. 내 문자열은 "ABCBDE"이고, "ABCDE"을 인쇄하고 대신 "ABCEDD"을 인쇄합니다. 순서는 실제로 중요하지 않지만 모든 편지를 한 번만 인쇄해야합니다. 누구든지 내 코드에서 실수를 보았습니까?
는#include <stdio.h>
int main()
{
char str1[] = "ABCBDE";
printf("Available: %s\n", str1);
int len1 = strlen(str1);
int i = 0;
int j;
for(i; i < len1; i++){
for(j = i+1; j < len1+1; j++){
if (str1[i] == str1[j]) { // remove duplicated letter
str1 [j] = str1 [len1 - 1]; // replace with last
len1 --; // cut last
}
}
}
printf("Available: %s\n", str1);
return 0;
}
오 @xing! 환상적입니다, 정말 고마워요! 나는 당신의 도움에 감사한다;) – Michael91
@ xing lrearaor와 그것을 시험해 보았다. https://repl.it/Nkba/0 –
알고리즘에 문제가 있습니다. 코드 에서뿐만 아니라 알고리즘 단계에서도 일어나는 일을 단계별로 시도해보십시오. 그런 다음 코드를 작성하십시오. – sidyll