私は比較的簡単な問題があります。ユーザーがプログラムを実行し、30文字以下のメッセージを入力すると、メッセージの個々の文字の大文字小文字が切り替わります(小文字は小文字になり、小文字は小文字になります)。ケースを変更する部分を除いてすべてが問題ありません。私は、配列のcharへのポインタを使用して、それを関数の引数としてtoggle_caseに渡すことになっています。これを達成する方法について私を助けてください。 ここにコードがあります。cで配列要素ポインタを渡す
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void read_message(char *message, int *message_size);
void toggle_case(char *character);
void count_cv(char* message);
int main() {
char message[30];
int message_size;
char *message_pointer;
message_pointer = message;
read_message(message, &message_size);
int i = 0;
for(i =0; i<30; i++){
toggle_case(&message_pointer[i]);
}
printf("New string: %s",message);
return 0;
}
void read_message(char *message, int *message_size){
printf("Enter your string (maximum 30 characters): ");
fgets(message, 30, stdin);
}
void toggle_case(char *character){
//check if character is a letter
if (isalpha(*character)) {
//Check if the character is upper case
if(isupper(*character)){
//convert the character to lower case
tolower(*character);
} else {
//Check if the character is lower case
//convert the character to upper case
toupper(*character);
}
}
}
void count_cv(char* message){
}
あなたの難しさは何ですか?コードがコンパイルされていない、クラッシュしている、出力が間違っていますか?それを明確に説明して、何を手助けすべきかを知ることができます。 'toggle_case'の元の文字に結果を保存していないように見えます。それが問題ならば、結果を 'toggle_case'の中に代入するか、呼び出し側が代入するための結果を返します。 – kaylum
'message_size'はまったく使用されていないようです... – dreamlax