這是一個很小的問題,可能真的很愚蠢!但是,爲什麼我得到垃圾返回我的輸出這個函數應該刪除雙重字母?玩字符串函數
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char *makehello(char *s) {
char new[16] ;
int i ;
int c = strlen(s);
for (i = 0; i < (c + 1); i++)
if (toupper(s[i]) != toupper(s[i+1]))
new[i] = toupper(s[i]);
return strdup(new) ;
}
int main(void) {
char *new;
char data[100];
scanf("%s", data);
new = makehello(data);
printf("%s", new);
return 0;
}
什麼當有超過16個結果字母時會發生? –
我只是玩atab aacc等測試它,但得到垃圾打印:/ – PnP
請確保您終止結果。初始化爲char char [16] = {0};'。 –