0
需要幫助的長時間潛伏者,我無法通過搜索找到。好吧,我在說謊,我發現了一些東西,但它沒有幫助我。將char數組傳給toupper函數
我想要做的是創建一個帶有字符串的字符串數組,並將它們傳遞給一個函數,該函數將大寫字母字符(它應該只有一個),然後用大寫字母再次顯示字符數組。
我不能得到這個工作。我通過搜索欄找到和它說我應該能夠通過
*d = toupper(*d);
傳遞一個指向一個字符數組和大寫,但它只是不工作。任何人都可以談談這個問題嗎?謝謝!
它編譯通過經由命令提示用gcc和它給是一個「總線10的錯誤」和Xcode中我得到這樣的:「線程1:EXC_BAD_ACCESS(代碼= 2,地址= memorylocation)」
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
void print_data(char *info[]);
void convert_data(char *info[]);
char *data[] = { "000a", "000b", "000c", "000d", "000e" };
print_data(data);
printf("\n");
convert_data(data);
print_data(data);
return 0;
}
void print_data(char *info[]) {
int n;
for (n=0; n < 5; n++) {
char *p = info[n];
while (*p != '\0') {
printf("%c", *(p++));
}
printf("\n");
}
}
void convert_data(char *info[]) {
int n;
for (n=0; n<5; n++) {
char *d = info[n];
while (*d != '\0') { // I THINK THIS IS THE PROBLEM
*d = toupper(*d); // RIGHT HERE TOO
d++;
}
}
}
首先,你還沒有充分的描述你的程序的電流(不正確的)行爲。它究竟在做什麼?但對於初學者來說:while(* d!='\ 0')',這是一個infinete循環,因爲'd'在循環內部沒有任何變化。 – kaylum
我添加了d ++,但在它出現之前它給了我一個錯誤。 – rAFTA
「給我一個錯誤」..這是?如果確實有這個問題,那麼用'd ++'更新你的代碼,否則我們該如何關注你的實際問題? – kaylum