Действие
| Вид функции
| Пример использования
|
1.Присваивание строк
| char *strcpy (char *str1, const char *str2)
используется для копирования содержимого str2 в str1.
| Следующая фрагмент кода копирует “hello” в строку str:
char str[80];
strcpy(str,”hello”);
|
2. Длина строки
| size_t strlen (const char *str)
возвращает длину строки. При определении длины строки нулевой символ не учитывается.
| Данный фрагмент кода выводит на экран число 5.
strcpy(s,”hello”);
int n;
n=strlen(s);
cout<<n;
|
3. Функция соединения строк
| char *strcat (char *str1, const char *str2)
конкатенирует (соединяет в цепочку) строку str1 и копию строки str2. Строка str2 остается в первоначальном виде.
| #include <iostream.h>
#include <string.h>
int main(void)
{ char s1[80],s2[80];
cin.getline(s1,80);
cin.getline(s2,80);
strcat(s2,s1);
cout<<s2<<endl;
return 0;}
|
4. Поиск символа в строке.
| char *strchr (const char *str, int ch)
возвращает указатель на первое вхождение символа ch в строку, на которую указывает str. Если символ ch не найден, возвращается нулевой указатель NULL.
| Следующая программа выведет строку ”is a test”:
#include <iostream.h>
#include <string.h>
int main(void)
{char *p;
p = strchr(“this is a test”,’ ‘);
cout<<p<<endl;
return 0;
}
|
5. Сравнение строк
| char *strcmp ( char *str1, char *str2)
выполняет алфавитное сравнение двух строк, оканчивающихся нулевыми символами, и возвращает целое число со следующим значением:
Число Значение
Меньше 0 str1 меньше, чем str2
Равно 0 str1 равна str2
Больше 0 str1 больше, чем str2
| Следующая функция используется для проверки пароля
char s[80];
cout<<“Введи пароль: “;
cin.getline(s,80);
if(strcmp(s, “pass”)) {
cout<<“Неправильный пароль.”;
}
|
6. Поиск подстроки в строке
| char *strstr (char *str1, char *str2)
возвращает указатель на первое вхождение в строку, на которую указывает str1, строки, указанной str2 . Если совпадений не обнаружено, возвращается нулевой указатель NULL.
| char *p;
char s1[80],s2[80];
cin.getline(s1,80);
cin.getline(s2,80);
p = strstr(s1,s2)
if(p) cout<<”Входит s2 в s1”;
else cout<<”Не входит s2 в s1”;
|
7. Выделение слов в строке
| char *strtok (char *str1, char *str2)
возвращает указатель на следующую лексему в строке, на которую указывает str1. Символы из строки, на которую указывает str2, используются как ограничители, определяющие лексему. Если лексема не найдена, то возвращается NULL.
| #include <iostream.h>
#include <string.h>
int main(void)
{char *p;
char s[80];
int i;
cin.getline(s,80);
//выделение слова
p = strtok(s," \n");
i=1;
cout<<i<<" "<<p<<endl;
while(p = strtok(NULL," \n"))
{ i++;
cout<<i<<" "<<p<<endl;
}
return 0;}
|