我有一個指針:轉換一個字符指針爲大寫用C
char * name;
它包含字符串"test:case"
我打電話來與它的另一個功能,並試圖將其存儲在一個結構。但是,我想首先利用整個字符串,但似乎並不奏效。
void func(char * name) {
int i;
List * l;
l = malloc(sizeof(List));
for(i=0; i< strlen(name); i++) {
name[i] = toupper(name[i]);
}
l->name = name;
//CALL A FUNCTION TO LATER FREE ALLOCATED MEMORY
}
凡List is a struct that has a member (char *) named name.
然而,這賽格故障。我不能在我的情況下使用非指針。當我不得不使用指針而不是字符數組,我想在字符指針的每一個值使用TOUPPER,但是這似乎並沒有工作。
你是如何設置'name'的?這聽起來像你指向一個字符串文字。這些是不可修改的,你需要複製它。 – Barmar
即使我不嘗試大寫(說刪除for循環的東西),並打印出名稱的結構值,它打印出正確的值,不知道你在這裏的意思。 – TEDG
我不明白這個問題。段錯誤來自嘗試將其大寫。如果你不使用大寫字母,那沒有問題。 – Barmar