Это домашнее задание, и это задание, которое мне дали:
Печать строки в верхнем и нижнем регистре
Разбивает строку в середине и печатает две части с "-" между требованиями:
Преобразование строки в верхний и нижний регистр должно выполняться в функциях. Эти функции не должны возвращать ничего (void) и должны вызываться: string_upper, string_lower.
Не использовать strlwr или strupr.
Примечание. Длина строки всегда четная.
Ожидаемый результат (со строкой, которую вы получаете в качестве ввода):
Строка в верхнем регистре - 'ABCDEFGH'
Строка в нижнем регистре - 'abcdefgh'
Строка, разделенная на две части, - 'abcd - efgh'
Мне удалось придумать что-то, что работает, но оно не использует функции, как того требует задача. Как вы можете сделать это с функциями?
Я посмотрел вокруг, но я не могу найти какие-либо примеры преобразования строк в верхний и нижний регистр с использованием функций
#include<stdio.h>
#include<string.h>
int main() {
char inputString[100], leftHalf[100], rightHalf[100];
int length, mid, i, k;
/* Read input string from user using gets */
printf("Enter a string\n");
gets(inputString);
/* Find length of string using strlen function */
length = strlen(inputString);
mid = length/2;
/* Copy left half of inputString to leftHalf */
for(i = 0; i < mid; i++) {
leftHalf[i]= inputString[i];
}
leftHalf[i] = '\0';
/* Copy right half of inputString to rightHalf */
for(i = mid, k = 0; i <= length; i++, k++) {
rightHalf[k]= inputString[i];
}
for(i=0;i<=strlen(inputString);i++)
{
if(inputString[i]>=65&&inputString[i]<=90)
inputString[i]=inputString[i]+32;
}
printf("String in Lowercase: %s\n",inputString);
/* To print string in upperCase*/
for(i=0;i<=strlen(inputString);i++)
{
if(inputString[i]>=97&&inputString[i]<=122)
inputString[i]=inputString[i]-32;
}
printf("String in Uppercase: %s\n",inputString);
/* Printing left and right half of string */
//printf("Left half : %s\n",leftHalf);
//printf("Right half : %s\n",rightHalf);
printf("%s-%s",leftHalf, rightHalf);
return 0;
}