Получить строку после запятой, не включая эту запятую - C (СИ)
Формулировка задачи:
Не могу придумать, как сделать так, чтобы в итоге получились две строки "12" и "48" (число взято условно для того, чтоб понять алгоритм).
Как получить строку "12" представлено ниже. Но что сделать, чтобы получить строку после запятой, не включая эту запятую? Может у кого-нибудь есть мысли...
char *p; char tr[100]; p = strchr("12,48", ','); printf(p); printf("\n"); memcpy(tr, "12,48", strstr("12,48", p)-"12,48"); printf(tr);
Решение задачи: «Получить строку после запятой, не включая эту запятую»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main(void) { char s[] = "12,48"; char twelve[32]; char fortyeight[32]; char* pch = NULL; pch = strchr(s, ','); strncpy(twelve, s, strlen(s) - strlen(pch)); twelve[strlen(s) - strlen(pch)] = '\0'; strncpy(fortyeight, pch + 1, strlen(pch + 1)); fortyeight[strlen(pch + 1)] = '\0'; printf("'%s'\n'%s'\n", twelve, fortyeight); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками
- Объявление и инициализация строки s и массивов twelve и fortyeight
- Объявление указателя pch, который будет использоваться для поиска запятой в строке s
- Поиск позиции запятой в строке s с помощью функции strchr
- Копирование части строки от начала до позиции запятой в массив twelve с помощью функции strncpy
- Установка нулевого символа в конце массива twelve
- Копирование части строки после запятой в массив fortyeight с помощью функции strncpy
- Установка нулевого символа в конце массива fortyeight
- Вывод на экран содержимого массивов twelve и fortyeight
- Возврат 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д