Я только начали изучать C. Делаю программу ниже:символов Обработки и Манипуляция строк
#include<stdio.h>
#include<ctype.h>
int main()
{
char s1[1000];
char s2 [1000];
/* void countchar (const char * const); */
void reverse(const char * const);
char manipulate (char , const char);
printf ("Enter sentence number 1:\n");
gets (s1);
printf ("\nEnter sentence number 2:\n");
gets (s2);
printf ("\nThe two sentences entered are:\n1. %s\n2. %s\n\n", s1, s2);
/* printf ("_______________________________________\n\n");
countchar (s1, s2); */
printf ("_______________________________________\n\n"
"The first sentence reversed is:\n");
reverse (s1);
printf ("\n________________________________________\n");
manipulate (s1, s2);
return 0;
}
void reverse (const char * const s1Ptr)
{
if (s1Ptr [0] == '\0')
return;
else /*{
if (isupper (s1Ptr [0]))
tolower (s1Ptr [0]);
else toupper (s1Ptr [0]);
*/
reverse (&s1Ptr[1]);
putchar (toupper (s1Ptr [0]));
}
char manipulate(char s1, const char s2)
{
printf ("10 characters of first sentence + 10 characters of second sentence:\n%s", strncat (s1, s2, 10));
}
Программа будет читать два предложения, то подсчитать количество символов, реверса первого предложения и преобразуйте все строчные в верхние регистры наоборот, и добавьте 10 символов из второго абзаца в первый.
Функция, манипулирующая добавлением символов, не работает. Вы можете исправить это для меня? В функции reverse, как мне преобразовать регистр наоборот? Потому что я могу получить его только от нижнего регистра до верхнего регистра
Часть с/* связана с тем, что я не знаю, как сделать эту функцию. Мне действительно нужна помощь в этом, пожалуйста, любезно укажите мои ошибки и помогите мне исправить их. Спасибо.
его подпись неверна. Он должен принимать 'char *', а не один символ 'char'. –
'void reverse (const char * const s1Ptr)' не должен быть аргументом 'const', потому что функция изменяет' * s1Ptr' (хотя и закомментирован). Эта функция также рекурсивна, это то, что вы намеревались? Примечание. Существуют библиотечные функции 'strupr()' и 'strlwr()', которые работают с массивом char (строка). Зачем изобретать колесо? –
'char манипулировать (char, const char);' -> char манипулировать (char *, const char *); и '#include" –
BLUEPIXY