Я новичок в C и наткнулся на стену при создании функции ниже. Я хочу использовать эту функцию, чтобы сделать первую букву слова в верхнем регистре для статического массива символов (char string []. На мой взгляд, это нормально, но я получаю некоторые синтаксические ошибки, которые, вероятно, довольно простые. Ошибки компилятора :
ошибка: недопустимое преобразование из
const char' to
const char * 'инициализирующий аргумент 1 из `size_t strlen (const char *)' присвоение местоположения только для чтения
void Cap(char string[]){
int i;
int x = strlen(string);
for (i=1;i<x;i++){
if (isalpha(string[i]) && string[i-1] == ' '){
// only first letters of a word.
string[i]= toupper(string[i]);
}if (isalpha(string[0]))
{
string[0]=toupper(string[0]);
}
}
}
string[i]= toupper(string[i])
не жалуется из-заconst
характера параметраstring
, получите новый компилятор. Этот параметр должен бытьchar string[]
. И вы хотитеstrlen(string)
, а неstrlen(string[i])
. И полностью потерять строкуreturn Cap
. Этоvoid
функция. - person WhozCraig   schedule 18.11.2013