Пример использования функции strlen()

#include <stdio.h>

#include <string.h>

int main(void) {

char str[] = “Привет мир!”;

int length = strlen(str);

printf(“Длина строки = %d.\n”,length);

return 0;

}

Результатом работы программы будет вывод на экран числа 11. Учитывая,

что первый символ имеет нулевой индекс, то можно заметить, что данная

функция считает и символ ‘\0’.

Теперь рассмотрим правила копирования строк. Допустим, объявлены две строки

char str1[] = “Это первая строка”;

char str2[] = “Это вторая строка”;

Копирование строк с помощью оператора присваивания, например, str1 = str2, приведет к тому, компилятор выдаст сообщение об ошибке. Для того чтобы выполнить копирование необходимо перебирать по порядку элементы одного массива и присваивать их другому массиву. Однако, проще выполнить нужное действие с помощью функции strcpy ().Следующий пример демонстрирует применение данной функции.

#include <stdio.h>

#include <string.h>

int main(void) {

char src[] = “Привет мир!”;

char dest[100];

strcpy(dest, src);

printf(“%s\n”,dest);

return 0;

}

В языке С имеется несколько функций, позволяющих вводить строки с клавиатуры. Самой распространенной из них является ранее рассмотренная функция scanf (), которой в качестве параметра передается ссылка на массив символов:

char str[100];

scanf(“%s”,str);

В результате выполнения этого кода, массив str будет содержать введенную пользователем последовательность символов.

Кроме функции scanf() также часто используют функцию gets (), которая в качестве аргумента принимает ссылку на массив символов:

gets (str);

Данная функция считывает символы до тех пор, пока пользователь не нажмет клавишу Enter, т.е. введет символ перевода строки ‘\n’. Затем она записывает вместо символа ‘\n’ символ ‘\0’ и передает строку вызывающей программе.

Для вывода строк на экран помимо функции printf () можно использовать также функцию puts (), которая более проста в использовании. Следующий пример демонстрирует применение данной функции.

#define DEF “Заданная строка”

char str[] = “Это первая строка”;

puts(str);

puts(DEF);

puts(&str[4]);

Результат работы следующий:

Это первая строка

Заданная строка

первая строка

Еще одной удобной функцией работы со строками является функция sprintf (). Ее действие аналогично рассмотренной ранее функции printf() с той лишь разницей, что результат вывода заносится в массив символов, а не выводится на экран монитора:

int age;

char name[100], str[100];

printf(“Введите Ваше имя: ”);

scanf(“%s”,name);

printf(“Введите Ваш возраст: ”);

scanf(“%d”,&age);

sprintf(str,”Здраствуйте %s. Ваш возраст %d лет”, name, age);

puts(str);

В результате массив str будет содержать строку «Здраствуйте … Ваш возраст…».

Анализ последнего примера показывает, что с помощью функции sprintf() можно преобразовывать числовые переменные в строковые, объединять несколько строк в одну и т.п. Есть и специальные функции для таких преобразований (таблица 3.5).

Таблица 3.5 - Функции взаимопреобразования строк и чисел

Прототип функции Краткое описание функции
double atof (char *str) преобразовывает строку str в вещественное число типа double
int atoi (char *str) преобразовывает строку str в десятичное целое число
long atol (char *str) преобразовывает строку str в длинное десятичное целое число
char *itoa (int v, char *str, int baz) преобразовывает целое v в строку str; при изображении числа используется основание baz (от 2 до 36): для отрицательного числа и baz = 10 первый символ — минус(-)
char *ltoa (long v, char *str, int baz) преобразовывает длинное целое v в строку str; при изображении числа используется основание baz (от 2 до 36)
char *ultoa (unsigned long v, char *str, int baz) преобразовывает беззнаковое длинное целое v в строку str

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: