strcpy() (от слова copy – копирование)
strcpy() (от слова copy – копирование)
Реализуем копирование одной строки и её вставку на место другой строки.
| #include < iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, " rus" );
char someText1[64] = " Сaйт purecodecpp. com! ";
char someText2[] = " Основы С++";
cout < < " Строка someText1 - \" " < < someText1 < < " \" \n";
cout < < " Строка someText2 - \" " < < someText2 < < " \" \n\n";
int count = 0;
while (true) // запускаем бесконечный цикл
{
someText1[count] = someText2[count]; // копируем посимвольно
if (someText2[count] == '\0') // если нашли \0 у второй строки
{
break; // прерываем цикл
}
count++;
}
cout < < " Строка someText1 после копирования someText2 -\n\" " < < someText1 < < " \" \n\n";
return 0;
}
|
Применим стандартную функцию библиотеки cstring:
| #include < iostream>
#include < cstring>
using namespace std;
int main()
{
setlocale(LC_ALL, " rus" );
char someText1[64] = " Сaйт purecodecpp. com! ";
char someText2[] = " Основы С++";
cout < < " Строка someText1 - \" " < < someText1 < < " \" \n";
cout < < " Строка someText2 - \" " < < someText2 < < " \" \n\n";
strcpy(someText1, someText2); // передаём someText1 и someText2 в функцию
cout < < " Строка someText1 после копирования someText2 -\n\" " < < someText1 < < " \" \n\n";
return 0;
}
|
Пробуйте компилировать и первую, и вторую программу. Увидите такой результат:
strcmp() (от слова compare – сравнение)
Эта функция устроена так: она сравнивает две Си-строки символ за символом. Если строки идентичны (и по символам и по их количеству) – функция возвращает в программу число 0. Если первая строка длиннее второй – возвращает в программу число 1, а если меньше, то -1. Число -1 возвращается и тогда, когда длина строк равна, но символы строк не совпадают.
| #include < iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, " rus" );
char someText1[] = " Сaйт purecodecpp. com! ";
char someText2[] = " Сaйт purecodecpp. com/";
cout < < " Строка someText1 - \" " < < someText1 < < " \" \n";
cout < < " Строка someText2 - \" " < < someText2 < < " \" \n\n";
int compare = 0; // для сравнения длины строк
int count = 0;
while (true)
{
if (strlen(someText1) < strlen(someText2))
{
cout < < " Строки НЕ равны: " < < --compare < < endl;
break;
}
else if (strlen(someText1) > strlen(someText2))
{
cout < < " Строки НЕ равны: " < < ++compare < < endl;
break;
}
else // если по количеству символов строки равны
{
if (someText1[count] == someText2[count]) // сравниваем посимвольно включая \0
{
count++;
if (someText1[count] == '\0' & & someText2[count] == '\0')
{
cout < < " Строки равны: " < < compare < < endl;
break;
}
}
else // если все же где-то встретится отличный символ
{
cout < < " Строки НЕ равны: " < < --compare < < endl;
break;
}
}
}
return 0;
}
|
Программа с strcmp():
| #include < iostream>
#include < cstring>
using namespace std;
int main()
{
setlocale(LC_ALL, " rus" );
char someText1[] = " Сaйт purecodecpp. com! ";
char someText2[] = " Сaйт purecodecpp. com/";
cout < < " Строка someText1 - \" " < < someText1 < < " \" \n";
cout < < " Строка someText2 - \" " < < someText2 < < " \" \n\n";
cout < < strcmp(someText1, someText2) < < endl < < endl;
return 0;
}
|
Делитесь в социальных сетях нашими статьями со своими знакомыми, которые так же изучают основы программирования на языке С++.
Воспользуйтесь поиском по сайту: