感謝您的關注......我真的很困惑......爲什麼我不能將char類型轉換爲大寫字母,當我給字符數組時......就像這樣「char drh [1] 「?Toupper不能用字符數組工作
這是我的代碼..這段代碼還沒有完成..我卡在中途。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
using namespace std;
int main()
{
char nama[50], gender[6], drh[1];
int tahun_l, usia;
float berat, tinggi, berat_i;
printf("Masukkan Data Anda\n\n");
// INPUT ZONE
//First
printf("Nama\t\t\t\t: ");
scanf("%[^\n]", &nama);
printf("Tahun Lahir (yyyy)\t\t: ");
scanf("%d", &tahun_l);
printf("Gol Darah (A/B/C)\t\t: ");
scanf("%s", &drh);
system("cls");
//Second
printf("Masukkan Data Anda\n\n");
printf("Nama\t\t\t\t: %s\n", nama);
fflush(stdin);
printf("Tahun Lahir (yyyy)\t\t: %d\n", tahun_l);
fflush(stdin);
printf("Gol Darah (A/B/O)\t\t: %s\n", drh);
drh = toupper(drh); //not working
fflush(stdin);
printf("Jenis Kelamin (Pria/Wanita)\t: ");
scanf("%s", &gender);
printf("Berat Badan (kg)\t\t: ");
scanf("%f", &berat);
printf("Tinggi Badan (cm)\t\t: ");
scanf("%f", &tinggi);
//FORMULA ZONE
usia = 2008 - tahun_l;
berat_i = tinggi - 100 - (0.1 * (tinggi - 100));
//OUTPUT ZONE
printf("\n%s, berdasarkan data yang Anda masukkan,\n", nama);
printf("Anda berjenis kelamin %s, saat ini Anda berusia %d tahun,\n", gender, usia);
printf("Berat badan = %.2f kg, tinggi badan = %.2f cm, golongan darah = %s \n", berat, tinggi, drh);
printf("\nBerat badan ideal adalah %.2f", berat_i);
getche();
return 0;
}
你得到什麼錯誤? –
我得到了這個錯誤@IonutHulub [錯誤]從'char *'到'int'的無效轉換[-fpermissive] – messerchainey
看起來像你得到了你對這個問題的答案。同樣,用'scanf(「%c」,&drh);''替換'scanf(「%s」,&drh);'',因爲如果讀取字符串scanf也會在drh [1]中添加'0'),並且可能導致內存損壞 –