ฉันกำลังพยายามเขียนฟังก์ชันตัวพิมพ์ใหญ่ที่แปลงอักขระตัวพิมพ์เล็กทั้งหมดในสตริงให้เป็นตัวพิมพ์ใหญ่ที่เทียบเท่ากัน
อย่างไรก็ตาม ฉันได้รับข้อผิดพลาด Bus 10 ในรหัสของฉัน ฉันรู้ว่าไม่สามารถแก้ไขตัวอักษรสตริงในภาษา C; ดังนั้นฉันไม่แน่ใจว่านี่เป็นแนวทางที่ถูกต้องหรือไม่
รหัสของฉันอยู่ด้านล่าง:
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
int uppercase(char source[])
{
int i;
for(i=0; i<=strlen(source); ++i)
if (source[i]>= 'a' && source[i]<= 'z')
source[i]= source[i]-'a' +'A';
else
source[i]=source[i];
}
int main(){
uppercase("cold");
return 0;
}
ตามหลักการแล้วฟังก์ชันนี้ควรส่งคืน COLD ฉันคิดว่าข้อผิดพลาดอยู่ในคำสั่ง if ทั้งหมดของฉัน
source[i] = source[i]
?? - person Kerrek SB   schedule 22.12.2013