У меня есть проблема с выводом текста в символы кода предложения. Когда я подскажу: heLLo! Здравствуйте. я в порядке.случай предложения указателя (C)
Ожидаемый результат: Здравствуйте! Здравствуйте. Я в порядке.
Но мой результат вывода пробега: Здравствуйте! Здравствуйте. я в порядке.
Мой код не может выводить в верхнем регистре после '!' /'''/ '?'/'_' Любой может сообщить, какую ошибку я сделал? Заранее спасибо.
-Ellie код
Пример:
printf ("\n\nThe line of the text in sentence case is:\n");
i = 0;
text_ptr = text;
up = 1; /* up = 1 means upper case is yes */
while (*(text_ptr+i) != '\0') /* could have been: while(text[i]) */
{
if(!up)
if(*(text_ptr+i-1)==' ' && toupper(*(text_ptr+i)=='I' && (*(text_ptr+i+1)==' ' ||
*(text_ptr+i+1)=='.' || *(text_ptr+i+1)=='!' || *(text_ptr+i+1))=='?'))
up = 1; /* capitalize i if all alone */
if(up)
if (*(text_ptr+i)!=' ' || *(text_ptr+i+1)=='.' || *(text_ptr+i+1)=='!' || *(text_ptr+i+1)=='?')
{
putchar(toupper(*(text_ptr++)));
up = 0;
} /* end if */
else
putchar(tolower(*(text_ptr++)));
else
{
putchar(tolower(*(text_ptr+i)));
if (*(text_ptr)=='?' || *(text_ptr)=='.' || *(text_ptr)=='!')
up = 1;
i++;
} /* end else */
}/* end while */`
Вы пытались отладить это самостоятельно? Если нет, вы можете прочитать это: http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – alk
'i' используется неверно. Это не кажется необходимым. – BLUEPIXY
Примечания: 1) используйте несколько '{braces}' для многострочных блоков. 2) используйте указатель вместо обозначения указателя. 3) рассмотрим конечный автомат - подход. – wildplasser