Функции для работы со строками
strcpy(y,x) – копирует строку x в y, включая завершающий нулевой символ. strncpy(z,x,n) – копирует не более чем n символов массива x в z. Если строка х длиной меньше, чем n, то в z дописывается нулевой символ столько раз, сколько нужно, чтобы общее количество скопированных символов равнялось n.
#include <iostream> #include<string.h> // заголовочный файл для обработки строк using namespace std; int main(){ char x[]="C++ in samples and tasks"; char y[50],z[15]; cout<<"stroka x: "<<x<<endl; cout<<"stroka y: "<<strcpy(y,x)<<endl; strncpy(z,x,14); z[14]='\0'; cout<<"stroka z: "<<z<<endl; system("pause"); return 0; }
strcat(s1,s2) –добавление копии строки s2, включая завершающий нулевой символ, в конец строки s1. Начальный символ строки s2 записывается поверх нулевого символа в конец строки s1. Строка, определенная первым аргументом, должна иметь достаточно пространства, чтобы вместить обе строки после их объединения. strncat(s1,s2,n) – добавление не более чем n символов массива s2 в конец строки s1.
int main(){ char s1[50]="C++ -"; char s2[]= "a general-purpose language!"; char s3[50]=" "; char *s4(" and C#"); cout<<"s1= "<<s1<<endl; cout<<"s2= "<<s2<<endl; strcat(s1,s2); cout<<s1<<endl; cout<<"strncat(s3,s1,12)"<<strncat(s3,s1,12)<<endl; cout<<strcat(s1,s4)<<endl; //cout<<"strcat(s3,s1)"<<strcat(s3,s1)<<endl; system("pause"); return 0; }
Функция strcmp возвращает 0, если строки равны, отрицательное значение, если первая строка меньше, чем вторая, и положительноезначение, если первая строка больше, чем вторая. Функция strcnmp предназначена для сравнения только первых n символов двух строк. Функции strcnicmp, stricmp предназначены для сравнения строк без учета регистра.
#include <iostream> #include<string> using namespace std; int main(){ char s1[ ]="111"; char s2[]= "11111"; char *s3("2222"); char *s4("2222"); cout<<strcmp(s1,s2)<<endl; cout<<strcmp(s3,s4)<<endl; system("pause"); return 0; }
Пояснение к примеру: функция strtok() возвращает из s1 лексему, отделенную разделителем. s2- указатель, ссылающийся на следующий символ, начиная с которого должен осуществляться поиск следующей лексемы. Каждый последующий вызов функции с нулевым указателем в качестве значения первого аргументапродолжает поиск лексем, начиная с того места в строке, на которое указывает возвращаемое в результате последнего вызова значение указателя. Функция возвращает нулевой указатель, если лексемы не обнаружены. #include <iostream> #include<string> using namespace std; int main(){ char s1[ ]="111;2222;33333 444444."; char *s2; s2=strtok(s1,";."); while (s2!=NULL) { cout<<s2<<endl; s2=strtok(NULL,";."); } system("pause"); return 0; }
#include <iostream> #include<string> using namespace std; int main(){ char *s1("0123456789"); char s3[]="9876543210"; cout<<s1<<endl<<strlen(s1)<<endl; cout<<s3<<endl<<strlen(s3)<<endl; system("pause"); return 0; }
Функция strstr() возвращает указатель на позицию в первом аргументе подстроки, указанной вторым аргументом. #include <iostream> #include<string> using namespace std; int main(){ char *s1("0123252789"); char *s2("2"); char *s3= strstr(s1,s2); if(!s3) cout<<s2<<endl<<"net"<<"v"<<s1<<endl; else cout<<"1-aj pozicia "<<s2<<" v "<<s1<<" - "<<s3-s1<<endl; system("pause"); return 0; }
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|