#include <stdio.h> #include <string.h> //pInputStr中是原來待處理的字符串,m是其大小 //pOutputStr是刪除重復后的字符串,其大小用n返回 void RemoveRepeatChar(const char* pInputStr, int m,char* pOutputStr, int* n) { int k = 0; //開始時,pOutputStr是空的,所以賦值0 //遍歷pInputStr中的字符 for( int i = 0; i < m; i++) { char Test_char = pInputStr[i]; //檢測這個字符是否出現過 int j =0; //用於遍歷pOutputStr for( j = 0; j < k; j++) { //如果有重復的字符,直接結束循環 if( pOutputStr[j] == Test_char) break; } //判斷Test_char是否出現過,如果j遍歷到了最后,那么一定沒有重復了 if( j == k) { pOutputStr[k] = Test_char; k++; //長度加1 } } //遍歷結束, 在pOutputStr后面加'\0' pOutputStr[k] = '\0'; //將k賦值給n,返回 *n = k; } //測試 int main() { char buf[] = "abcdefbcd"; char res[32]; int k = 0; //用於返回res大小 RemoveRepeatChar(buf,sizeof(buf),res,&k); printf("%s",res); }