Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 5.00
Alekssey
2 / 2 / 0
Регистрация: 11.12.2010
Сообщений: 59
#1

Замен стандартной функции stricmp - C++

19.12.2011, 16:24. Просмотров 3986. Ответов 14
Метки нет (Все метки)

Средствами языка Си реализовать функцию работы со строками. функция должна учитывать особенности кодировки кириллицы в DOS и Windows
Вот мои наработки:
C++
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h> 
#include<ctype.h> 
int stricmp(char *s, char *t) { 
for (; tolower(*s)==tolower(*t); s++, t++) 
if(*s == '\0') return (0); 
return(*s-*t); 
} 
void main(){ 
char *s="ABCC", *t="abcCD1"; 
printf("%d\n",stricmp (s,t)); 
getchar();
Почему то не работает сравнение, если в строке есть русские символы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 16:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замен стандартной функции stricmp (C++):

Написать две пользовательские функции, эквивалентные стандартной функции strlen - C++
Написать программу, содержащую две пользовательские функции определения длины строки, эквивалентные стандартной функции strlen. Первая из...

Насчет стандартной функции time() - C++
Есть маленький вопрос, ответ на который не получается найти: Как вывести на экран текущее значение времени с помощью функции тайм, чтобы...

Продемонстрировать работу стандартной функции - C++
char *strncpy(char *s1, const char *s2, size_t n); Копирует не более n символов из строки s2 в s1 и возвращает s2.

Ошибка в определении стандартной API функции - C++
Переписываю Бота по уроку из Ютьюба. Сейчас первый тест бота. Суть - найти в окне приложения определенный цвет пикселя и поместить туда...

как прочитать код стандартной функции - C++
к примеру как прочесть код функции system?одним словом получить код

'stricmp' undeclared (first use this function) - C++
Пытаюсь откомпилировать такой код из книги &quot;С++ для чайников&quot;: // DataSet - store associated data in // an array of...

14
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
19.12.2011, 16:28 #2
Цитата Сообщение от Alekssey Посмотреть сообщение
в строке есть русские символы
А коддировку кто менять будет?) У вас же не линукс
0
Alekssey
2 / 2 / 0
Регистрация: 11.12.2010
Сообщений: 59
19.12.2011, 16:33  [ТС] #3
Не понял, эта функция может работать только с латиницей?

Может напишите ваш вариант, для замены стандартной функции stricmp?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.12.2011, 17:09 #4
Цитата Сообщение от Alekssey Посмотреть сообщение
Замен стандартной функции stricmp
А она точно стандартная??? Ссылочку не кинете?
0
Alekssey
2 / 2 / 0
Регистрация: 11.12.2010
Сообщений: 59
19.12.2011, 17:50  [ТС] #5
она есть в библиотеке string.h
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.12.2011, 17:52 #6
Alekssey, да ладно, http://www.cplusplus.com/reference/clibrary/cstring/ , и где же она там... Эх помог бы Вам, но Вы сами этого не хотите
0
Alekssey
2 / 2 / 0
Регистрация: 11.12.2010
Сообщений: 59
19.12.2011, 18:05  [ТС] #7
ладно, давайте не будем углубляться в содержимое библиотек, формулировка задания просто может немного некорректна:
Средствами языка Си реализовать функцию работы со строками. Сравнить работу функции со стандартной функцией Си (файл string.h) Ваша функция должна учитывать особенности кодировки кириллицы в DOS и Windows!
stricmp – сравнение двух строк, игнорируя регистр символов
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.12.2011, 18:15 #8
Цитата Сообщение от Alekssey Посмотреть сообщение
stricmp – сравнение двух строк, игнорируя регистр символов
Стандартной функции stricmp в srting.h нет. Когда будете писать свою пользуйтесь
C++
1
#include <ctype.h>
http://www.cplusplus.com/reference/clibrary/cctype/
0
Alekssey
2 / 2 / 0
Регистрация: 11.12.2010
Сообщений: 59
19.12.2011, 18:18  [ТС] #9
а они с русскими символами работают?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.12.2011, 18:22 #10
Alekssey, или пиши в линуксе, или меняй кодировку. Русские шрифты в консоли
0
Alekssey
2 / 2 / 0
Регистрация: 11.12.2010
Сообщений: 59
19.12.2011, 19:39  [ТС] #11
ясно, значит программно это не решить(
Может как то можно перекодировать саму строку, и потом сравнить?
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
19.12.2011, 19:45 #12
Alekssey, Можно) Использовать класс locale к примеру с нужным фасетом.
0
Alekssey
2 / 2 / 0
Регистрация: 11.12.2010
Сообщений: 59
19.12.2011, 19:55  [ТС] #13
Хм... не думал что все так сложно будет.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.12.2011, 20:13 #14
Цитата Сообщение от Alekssey Посмотреть сообщение
Средствами языка Си
Цитата Сообщение от ForEveR Посмотреть сообщение
Можно) Использовать класс locale к примеру с нужным фасетом.
А в Си есть классы?
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
19.12.2011, 20:44 #15
go, Очевидно нет. Пропустил я как-то что тут про Си разговор. Можно iconv подключить, если не нужна кроссплатф.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 20:44
Привет! Вот еще темы с ответами:

Как использовать stricmp? - C++
Нашёл в интернете информацию о stricmp, которая сравнивает символы без учёта регистров и находится в string.h Но у меня такой функции...

Написать собственную реализацию стандартной функции strstr - C++
Написать собственную реализацию стандартной функции strstr. предназначена для поиска строки strCharSet в строке string. Возвращается...

Генератор случайных чисел без использования стандартной функции - C++
Нужен код генератора случайных чисел на c++ без использования функции rand(). Помогите пожалуйста , облазил весь интернет , не смог ничего...

Как выглядит исходный код функции sqrt стандартной библиотеки math.h? - C++
Здраствуйте. Мне надо исходный код функции sqrt стандартной библиотеки math.h . В интернете не могу найти понятный пример, а библиотеки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
19.12.2011, 20:44
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru