C/C++

Помогите мне сделать по С++ задание

Задание 1. Дополните свою библиотеку функций реали-
зациями нижеследующих функций:
■ int mystrcmp (const char * str1, const char * str2); — функция сравнивает две строки, и , если строки равны возвращает 0, если первая строка больше второй, то
возвращает 1, иначе –1.
■ int StringToNumber(char * str); — функция конвертирует строку в число и возвращает это число.
■ char * NumberToString (int number); — функция конвертирует число в строку и возвращает указатель на эту строку.
■ char * Uppercase (char * str1); — функция преобразует строку в верхний регистр.
■ char * Lowercase (char * str1); — функция преобразует строку в нижний регистр.
■ char * mystrrev (char * str); — функция реверсирует строку и возвращает указатель на новую строку.


Просьба, НЕЙРОСЕТЬ не использовать.
PP
Pavel Pavlov
67
Написал две первые функции.
 #include  
using namespace std;
int mystrcmp(const char* str1, const char* str2)
{
//функция сравнения двух си строк по лексикографическому признаку
while (*str1 == *str2 && *str1)
{
++str1; ++str2; //пропускаем равную часть строк
}
return (*str1 - *str2) % 2; //сравниваем несовпадающий символ и приводим разницу к диапазону [-1,1]
}
int StringToNumber(const char* str)
{
//в этой функции я не реализовал правильную обработку переполнения
//только ограничил длину символов 10-ми.
//число 9'999'999'999 хоть и имеет 10 знаков но больше INT_MAX
//так же заданный формат функции не позволяет вернуть сам факт нахождения числа
//если чисел в строке нет - вернет 0
int leng = 10, ch, prev_ch = '+', znak = 1, is_num = 0;
int number = 0;
while (ch=*str++)
{
if (ch >= '0' && ch
Алмас Абдыгапаров
Алмас Абдыгапаров
51 416
Лучший ответ
ава топ<3
Pavel Pavlov Да, ава у меня топ.
А помочь с кодом никак?
 #include  
#include
#include

int mystrcmp(const char* str1, const char* str2) {
int result = std::strcmp(str1, str2);
if (result == 0) {
return 0;
} else if (result > 0) {
return 1;
} else {
return -1;
}
}

int StringToNumber(char* str) {
return std::atoi(str);
}

char* NumberToString(int number) {
return strdup(std::to_string(number).c_str());
}

char* Uppercase(char* str) {
std::transform(str, str + std::strlen(str), str, ::toupper);
return str;
}

char* Lowercase(char* str) {
std::transform(str, str + std::strlen(str), str, ::tolower);
return str;
}

char* mystrrev(char* str) {
std::reverse(str, str + std::strlen(str));
return str;
}
источник (ну там код был)
Yevgen Stoyanov
Yevgen Stoyanov
1 266
Pavel Pavlov У меня теперь 3 ошибки в визуал студио
Pavel Pavlov Как тогда исправить, чтобы работало?