我再次發現自己相對迷失方向,並從同伴那裏尋求知識。 我需要做的是編寫一個程序,該程序採用編碼語言,在添加輔音後輸入英語,然後添加字母'u''t'。所以輸入的Hutelutluto會作爲你好輸出。起初我以爲我已經想通了,但後來我的教授說我必須將初始輸入存儲在字符數組中並顯示出來。然後使用該字符數組輸出修改後的翻譯。改變字符數組的輸出
我嘗試了幾個不同的角度,一個試圖修改我的readstring函數來適應我的修改參數。它總是變得混亂,給我意想不到的結果。
本質上我相信我需要喂字符數組到while循環的幫助,但是當我嘗試時我得到一個錯誤,指出我有一個指針與整數錯誤的比較。
這是我的代碼,我相信我是最接近解決問題的代碼。目前,while函數獨立於讀取字符串函數。我確信我正在解決問題,但我不知道如何解決這個問題。 :
/*
Tut language
By: Steven
*/
# include <stdio.h>
void readstring(char *, int);
int main (void){
char input [50];
char output;
char trash;
//initiation
printf("\n\t*Hi! Welcome to the assemble of Tut*\n");
printf("I can help you decode/encode a message to and from the code called Tut!\n");
printf("Enter a sentence to be translated frome Tut - English: ");
readstring(input, 50);
printf("Your Tut sencence is: %s \n",input);
while (output != '\n') {
output = getchar();
if(output == '\n'){//escape sequence
break;
}
if((output != 'a') && (output != 'e') && (output != 'i') && (output != 'o') && (output != 'u') && (output != 'y') && (output != ' ')){
putchar(output);
trash = getchar();
trash = getchar();
}else{
putchar(output);
}
}
return 0;
}// end main
//function lists start
void readstring(char * buffer, int size) {
int x;
char c = getchar();
if(c == '\n') {
c = getchar();
}
for(x = 0 ; (x < (size-1)) && c != '\n' ; x++) {
buffer[x] = c;
c = getchar();
}
buffer[x] = '\0';
}
任何幫助或反饋將不勝感激! 感謝您的時間!
p.s.
在考慮了我的建議後,我編輯了我的代碼,但好像它忽略了第一個之後的所有輸入。我什至嘗試改變!='\ n'條件只是我< 50,但我得到了同樣的結果。
的代碼行採取Tim的意見後:
for (i = 0; input [i] != '\n'; ++i){
output = input[i];
if((output != 'a') && (output != 'e') && (output != 'i') && (output != 'o') && (output != 'u') && (output != 'y') && (output != ' ')){
putchar(output);
trash = getchar();
trash = getchar();
}else{
putchar(output);
}
}
所以我想,我的問題是與垃圾= getchar();宣言。如果輸入的字符不是元音,我最初使用它來避開接下來的兩個字符輸入。但看到我必須將最初的信息存儲在一個字符數組中,我不知道我將如何跳過這兩個字符? – scubasteve7