Получить строку после запятой, не включая эту запятую - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы со строками
  2. Объявление и инициализация строки s и массивов twelve и fortyeight
  3. Объявление указателя pch, который будет использоваться для поиска запятой в строке s
  4. Поиск позиции запятой в строке s с помощью функции strchr
  5. Копирование части строки от начала до позиции запятой в массив twelve с помощью функции strncpy
  6. Установка нулевого символа в конце массива twelve
  7. Копирование части строки после запятой в массив fortyeight с помощью функции strncpy
  8. Установка нулевого символа в конце массива fortyeight
  9. Вывод на экран содержимого массивов twelve и fortyeight
  10. Возврат 0, что означает успешный конец работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.5 из 5
Похожие ответы