![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Подскожите где найти полный список этих функций и их описание.
И еще вопрос: Код:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
int main()
{
char *s;
int n;
cout <<"Enters text\n";
gets(s);
n=strlen(s);
cout <<'\n'<<n;
getch();
return 0;
}
Но она виснет, где ошибка?
__________________
Больше всего человек удивляет когда, кажется, что полностью узнал его... Последний раз редактировалось BFTFenix; 11.03.2008 в 14:30.. |
|
|
|
|
| Реклама: |
|
|
#2
|
|
Пользователь
Пол:
Регистрация: 04.03.2008
Сообщений: 68
Репутация: 16
|
У тебя s не char, а указатель на char, ты пытаешься strlen'om длинну его содержимого - в этом косяк. К тому же strlen сам по себе вроде в strings.h (могу в названии ошибаться), а ты его не проинклудил....
Функции работы со строками в strings.h чтоли.... сори если ошибся - в С++ давно не прогал.... По твоему получается, что юзер вводит значение указателя на значение типа char, а потом пытается определить длинну того, что по этому адресу существует.... - вот и виснет Последний раз редактировалось Shtab; 11.03.2008 в 14:45.. |
|
|
|
|
|
#3
|
|
да, я сюда не скопировал строку #include <string.h> (слючайно).
а по поводу списка функций не подскажешь?
__________________
Больше всего человек удивляет когда, кажется, что полностью узнал его... |
|
|
|
|
|
|
#4
|
|
Пользователь
Пол:
Регистрация: 04.03.2008
Сообщений: 68
Репутация: 16
|
|
|
|
|
|
|
#5
|
|||||||||||||||||||||||
На английском..., а это весьма печально в моем случае. Может так подскажешь ссылку на страницу в и-нете или на книжку толковую.
__________________
Больше всего человек удивляет когда, кажется, что полностью узнал его... |
||||||||||||||||||||||||
|
|
|
|
|
#6
|
|
BFTFenix, тоже на англицком, зато официальный ман по libc:
http://www.gnu.org/software/libc/man...rray-Utilities
__________________
THE TRUTH IS OUT THERE |
|
|
|
|
|
|
#7
|
|
Пользователь
Пол:
Регистрация: 04.03.2008
Сообщений: 68
Репутация: 16
|
|
|
|
|
|
|
#8
|
|
Постоялец
![]() ![]() ![]() ![]() ![]() Пол:
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Вместо
char *s; Надо писать char s[200]; И все должно получиться
__________________
Сергей Сергеевич |
|
|
|
|
|
#9
|
|
Неактивный пользователь
Пол:
Регистрация: 28.01.2008
Сообщений: 26
Репутация: 5
|
а если уж совсем придерживаться "буквы" С++, то лучше сделать что-нить вроде этого:
Код:
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
int main()
{
cout << "Enter text:" << endl;
string s;
cin >> s;
cout << "length is " << s.length() << endl;
getch();
return 0;
}
|
|
|
|
|
|
#10
|
|
Неактивный пользователь
Пол:
Регистрация: 04.12.2007
Сообщений: 32
Репутация: 4
|
Не совсем верно. Пробел является разделителем поэтому если при вводе есть пробел или табуляция, то cin обрубит введённый текс..
|
|
|
|
|
|
#11
|
|
Верно, приработе со строками лучше использовать ф-цию cin.get(), которая учитывает пробелы и заканчивает ввод после знака конца строки '\0' или последнего по счету элемента.
Последний раз редактировалось pozniakov; 03.05.2008 в 18:14.. |
|
|
|
|
|
|
#12
|
|
Неактивный пользователь
Пол:
Регистрация: 04.12.2007
Сообщений: 32
Репутация: 4
|
Если я не ошибаюсь, то не после '\0', а после нажатия на enter '\n' или признака конца файла Ctrl-Z.
|
|
|
|
|
|
#13
|
|
вот нашел инфу и решил сюда выложить, вдруг понадобится кому-нибудь.
Функции копирования: char *strcpy (char* s1, const char* s2) строку s2 копирует в s1; char *strncpy (char* s1,const char* s2, size_t count) копирует не более count символов из строки s2 в s1; char *strdup (const char *s) выделяет память для хранения копии строки, на которую указывает s, копирует эту строку в выделенную область и воз-вращает указатель на неё. Функции соединения строк: char *strcat (char* s1, const char* s2) строку s2 присоединяет к строке s1; char *strncat (char* s1, const char* s2, size_t count) не более count симво-лов из строки s2 присоединяет к строке s1. Функции поиска: char * strchr ( const char* s, char c) находит первое вхождение символа с в строку s. Возвращает указатель на найденный символ или NULL, если сим-вол не обнаружен; char * strrchr ( const char* s, char c) находит последнее вхождение сим-вола с в строку s. Возвращает указатель на найденный символ или NULL, ес-ли символ не обнаружен; char * strstr ( const char* s, const char* substr) ищет в s первое вхождение подстроки substr. Возвращает указатель на первый символ найденной под-строки или NULL, если такая подстрока не найдена; char *strpbrk ( const char *s1, const char *s2) — возвращает указатель на первый символ в строке s1, совпадающий с каким-нибудь из символов строки s2. При этом нулевые символы в конце строки в рассмотрение не включают-ся; char * strtok ( const char* s1, const char* s2) возвращает указатель на сле-дующую лексему (часть строки) в строке s1. Символы строки s2 используют-ся как ограничители, определяющие лексему. Как и в других функциях поис-ка, если лексема не найдена, возвращается NULL. Функции преобразования строк: char * strupr ( char* s) английские буквы нижнего регистра (“малень-кие”) строки, на которую указывает s, преобразует в соответствующие буквы верхнего регистра (в “большие”). Остальные символы не меняются; char * strlwr ( char* s) английские буквы верхнего регистра (прописные) строки, на которую указывает s, преобразует в соответствующие буквы ниж-него регистра (в “маленькие”). Остальные символы не меняются.
__________________
Больше всего человек удивляет когда, кажется, что полностью узнал его... Последний раз редактировалось BFTFenix; 12.05.2008 в 00:06.. |
|
|
|
|
|
|
#14
|
|
Неактивный пользователь
Регистрация: 14.05.2008
Сообщений: 1
Репутация: 0
|
имхо юзать спп и досовский ввод - устарело. у cin есть getline, считывает сроку целиком |
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| функции из dll | Dr Evil | Delphi | 17 | 12.10.2010 23:50 |
| Компоненты для работы со строками | Padre_Romari | Delphi | 7 | 05.02.2010 12:58 |
| Интервалы между строками | strmask | HTML | 2 | 18.09.2009 17:04 |
| Функции по работе с HDD | Indian | .NET | 1 | 05.02.2008 18:20 |
|
|