Я пытаюсь написать функцию в верхнем регистре, которая преобразует все строчные символы в строке в их эквиваленты в верхнем регистре.
Однако я получаю ошибку 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