Множественное преобразование строки - C (СИ)
Формулировка задачи:
Дана строка. Преобразовать ее следующим образом: если символ «*» в ней отсутствует, то оставить ее без изменения, иначе – заменить на символ «–» число символов после первого вхождения «*», равное ближайшему меньшему целому числу к половине длины подстроки, расположенной правее первого вхождения «*».
Прототип и ее краткое описание:
atof double atof(char *str) ;
Преобразует строку str в вещественное число типа double
atoi int atoi(char *str) ;
Преобразует строку str в десятичное целое число
atol long atol(char *str) ;
Преобразует строку str в длинное десятичное целое число
itoa char *itoa(int v, char *str, int baz) ;
Преобразует целое v в строку str. При изображении числа используется основание baz (от 2 до 36). Для отрицательного числа и baz = 10 первый символ — минус(-)
ltoa char *ltoa(long v, char *str, int baz);
Преобразует длинное целое v в строку str . При изображении числа используется основание baz (от 2 до 36)
strcat char * strcat(char *sp, char *si);
Приписывает строку si к строке sp (конкатенация строк)
strchr char *strchr(char *str, int c) ;
Ищет в строке str первое вхождение символа с
strcmp int strcmp(char *str1 , char *str2) ;
Сравнивает строки str1 и str2 . Результат отрицателен, если strl меньше str2; равен нулю, если str1 равно str2 и положителен, если str1 больше str2 (сравнение беззнаковое)
strcpy char *strcpy(char *sp, char *si) ;
Копирует байты строки si в строку sp
strcspn int strcspn(char *str1, char *str2) ;
Определяет длину первого сегмента строки str1, содержащего символы, не входящие во множество символов строки str2
strdup char *strdup(const char *str);
Выделяет память и переносит в нее копию строки str
strlen unsigned strlen(char *str);
Вычисляет длину строки str
strlwr char *strlwr(char *str);
Преобразует буквы верхнего регистра в строке в соответствующие буквы нижнего регистра
strncat char *strncat(char *sp, char *si, int kol);
Приписывает kol символов строки si к строке sp
strncmp int strncmp(char *str1, char *str2, int kol);
Сравнивает части строк str1 и str2, причем рассматриваются первые kol символов. Результат отрицателен, если str1 меньше str2; равен нулю, если str1 равен str2, и положителен, если str1 больше str2
strncpy char *strncpy(char *sp, char *si, int kol);
Колирует kol символов строки si в строку sp («хвост» отбрасывается или дополняется пробелами)
strnicmp char *strnicmp(char *str1, char *str2, int kol);
Сравнивает не более kol символов строки str1 и строки str2, не делая различия регистров
strnset char *strnset(char *str, int с, int kol);
Заменяет первые kol символов строки str символом с
strpbrk char *strpbrk(char *str1, char *str2);
Ищет в строке str1 первое появление любого из множества символов, входящих в строку str2
strrchr char *strrchr(char *str, int с);
Ищет в строке str последнее вхождение символа с
strset int strset(char *str, int с);
Заполняет строку str символом с
strspn int strspn(char *str1, char *str2);
Определяет длину первого сегмента строки str1, содержащего только символы, из множества символов строки str2
strstr char *strstr(const char *str1, const char *str2);
Ищет в строке str1 подстроки str2. Возвращает указатель на тот элемент в строке str1, с которого начинается подстрока str2
strtod double *strtod(const char *str,char **endptr);
Преобразует символьную строку str в число двойной точности. Если endpt нe равен null , то *endptr возвращает как указатель на символ, при достижении которого прекращено чтение строки str
strtok char *strtok(char *str1, const char *str2);
Ищет в строке str1 лексемы, выделенные символами из второй строки
strtol long *strtol(const char *str ,char **endptr,intbaz);
Преобразует символьную строку str к значению «длинное число» с основанием baz(от 2 до 36). Если endptr не равен null, то *endptr возвращается как указатель на символ, при достижении которого прекращено чтение строки str
strupr char *strupr(char *str)
Преобразует буквы нижнего регистра в строке в соответствующие буквы верхнего регистра
ultoa char *ultoa(unsigned long v, char *str, int baz);
Преобразует беззнаковое длинное целое v в строку str
Решение задачи: «Множественное преобразование строки»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main(void) { int N = 0; int i = 0; char s[256] = "This is a * test string from * hell *! Or not. Or maybe it is. Whatever."; char* pch = NULL; pch = strstr(s, "*"); if (pch != NULL) { N = strlen(pch + 1) / 2; for (i = 0; i < N; i++) { *(pch + 1 + i) = '-'; } } printf("'%s'\n", s); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д