
- •Лекция 13
- •Основные вопросы лекции.
- •Char а[11];
- •Char а[11];
- •Int _tmain(int argc, _tchar* argv[])
- •Getline(ИмяСимвольнойПеременной, РазмерСимвольнойПеременной);
- •Int _tmain(int argc, _tchar* argv[])
- •3.1. Определение длины строки
- •Strlen (ИмяСимвольнойПеременной);
- •Int _tmain(int argc, _tchar* argv[])
- •3.2. Копирование строк
- •Int _tmain(int argc, _tchar* argv[])
- •Ctrncpy (s1, s2, n);
- •Int _tmain(int argc, _tchar* argv[])
- •3.3. Присоединение строк
- •Int _tmain(int argc, _tchar* argv[])
- •3.3. Сравнение строк
- •String а;
- •5. Функции превращения типов
- •Int atoi (const char *ptr);
- •Сhar *gcvt (double val, int sig, char *buf);
- •Выводы.
- •Вопросы для самоконтроля.
Strlen (ИмяСимвольнойПеременной);
Функция возвращает значение на единицу меньшее, чем отводится под массив (без учета нулевого байта).
Пример 3. Исследуем использование функции strlen().
#include "stdafx.h"
#include <conio.h>
#include "iostream"
using namespace std;
Int _tmain(int argc, _tchar* argv[])
{
char A[80];
int k;
cout<<"Vvedite ctroku < 30 simvolov:"<<endl;
cin.getline(A,30); //Вызов функции getline() для ввода массива А
cout<<"Vu vveli stroku: "<<endl<<A; //Вывод символьной переменной А
k=strlen(A); //Вызов функции strlen(A) для определения количества
//символов в массиве А
cout<<endl<<"k= "<<k<<endl; //Вывод переменной k (кол. символов в А)
getch();
return 0;
}
Вид экрана после работы программы:
3.2. Копирование строк
Значения строк могут копироваться из одной строки в другую. Копирование осуществляется с помощью следующих функций.
Функция strcpy(S1,S2) используется для побайтного копирования строки S2 в строку S1. Копирование прекращается при достижении нулевого байта. Поэтому длина строки S1 должна быть достаточно большой, чтобы в нее поместилась строка S2.
Пример 4. Исследуем использование функции strcpy():
#include <string.h> //Добавление библиотеч. файла для работы со строками
#include "stdafx.h"
#include <conio.h>
#include "iostream"
using namespace std;
Int _tmain(int argc, _tchar* argv[])
{
char A[80];
int k;
cout<<"Vvedite ctroku < 30 simvolov:"<<endl;
cin.getline(A,30); //Ввод символьной переменной А
cout<<"Vu vveli stroku: "<<endl<<A;
strcpy(A, "Proverka kopirovaniya"); //Вызов функции strcpy(A) для копирования строки в строку
cout<<endl<<"Novaya stroka: "<<A; //Вывод новой символьной переменной А
getch();
return 0;
}
Вид экрана после работы программы:
Функция ctrncpy() отличается от функции ctrcpy() тем, что включает еще один параметр. Он указывает количество символов, которые необходимо копировать из строки S2 в строку S1. Функция имеет вид:
Ctrncpy (s1, s2, n);
где n – количество символов (целое без знака).
Если длина S1 меньше длины S2, то происходит урезание символов.
Пример 5. Исследуем использование функции strncpy():
#include <string.h>
#include "stdafx.h"
#include <conio.h>
#include "iostream"
using namespace std;
Int _tmain(int argc, _tchar* argv[])
{
char A[]="0123456789"; //Ввод символьной переменной А
char B[]="qwertyuiop"; //Ввод символьной переменной В
cout<<"S2= "<<A<<endl; //Вывод символьной переменной А
cout<<"S1= "<<B<<endl; //Вывод символьной переменной В
strncpy(B,A,4);
cout<<"S2new= "<<B<<endl; //Вывод новой символьной переменной В
getch();
return 0;
}
Вид экрана после работы программы:
То есть, из строки S2 в строку S1 будут скопированы 4 первых символа и размещены в начале короткой строки S2.
3.3. Присоединение строк
Присоединение (конкатенация) строк используется для образования новой строки символов из двух и более исходных строк. Для этой цели используются функции
strcat (S1, S2) и strncat (S1, S2, n);
Функция strcat (S1, S2) присоединяет строку S2 к строке S1 и помещает ее в массив, где находилась строка S1. Строка S2 не изменяется. Вновь полученная строка S1 автоматически завершается нулевым байтом.
Пример 6. Исследуем использование функции strcat():
#include <string.h>
#include "stdafx.h"
#include <conio.h>
#include "iostream"
using namespace std;