Посимвольный вывод массива Char и ошибка С2440

Есть задача, написать две функции посимвольного выведения элементов массива char с учетом что функция в качестве аргумента принимает масив и значение размера масива. Текст должен выводиться прописью и в нижнем регистре.

#include <cstdio>
#include <iostream>
namespace function
{
void greatout(char par[100]) {
    for (int i = 0; i < sizeof(par); i++) {
        putchar(toupper(par[i]));
    };
    
    std::cout << std::endl;
};

void lowout(char par[100]) {
    for (int i = 0; i < sizeof(par); i++) {
        putchar(tolower(par[i]));
    };
    
    std::cout << std::endl;
};
};

Выдает ошибку:

C2440 невозможно преобразовать const char[1] в сhar[].


Ответы (1 шт):

Автор решения: Mikhailo

Я бы не ограничивал функции только массивоом конкретного размера, и не путал С и С++.

Попробуйте такой код:

void greatout(const char* par) {
    for (; *par; par++) putchar(toupper(*par));
    putchar('\n');
    };

void lowout(const char* par) {
    for (; *par; par++) putchar(tolower(*par));
    putchar('\n');
    };

Может, и ваша ошибка уйдет.

→ Ссылка