Есть ли в языке Си аналоги функций Pos() и Delete()? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день. Пользователем вводится строка
char d[100];
printf("Введите число:\n");
    gets(d);
Необходимо разделить ее на две части( до запятой и после запятой). Как это сделать? Есть ли в языке Си аналоги функций паскаля Delete() и Pos()? Если можно, приведите, пожалуйста, примеры использования таких функций.

Решение задачи: «Есть ли в языке Си аналоги функций Pos() и Delete()?»

textual
Листинг программы
#include <stdio.h>
 
static const char*   pszText = "Something in a thirty-acre thermal thicket of thorns and thistles thumped and thundered threatening the three-D thoughts of Matthew the thug - although, theatrically, it was only the thirteen-thousand thistles and thorns through the underneath of his thigh that the thirty year old thug thought of that morning.";
 
int main(int argc,char* argv[])
{
   char     pBuf[1000];
 
   strcpy(pBuf,pszText);
 
   char*    pStr1 = pBuf;
   char*    pStr2 = strchr(pBuf,',');
 
   printf("This is FULL text: %s\n\n",pBuf);
 
   if (!pStr2)
   {
      // Error !
      // Delimiter Not found
      return 0;
   }
 
   *pStr2 = 0;
 
   ++pStr2;
 
   printf("This is text BEFORE comma: %s\n\n",pStr1);
   printf("This is text AFTER comma: %s\n\n",pStr2);
 
   return 0;
}

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

  1. В данном коде на Си реализуется функция, которая разбивает строку на две части по заданному разделителю (в данном случае запятой).
  2. Сначала мы объявляем строку pszText, которая содержит исходный текст. Затем мы объявляем буфер pBuf для хранения копии исходного текста.
  3. Затем мы копируем исходный текст в буфер с помощью функции strcpy(). Далее мы инициализируем указатель pStr1 на начало буфера и pStr2 на первый символ запятой в буфере с помощью функции strchr().
  4. Если pStr2 равен NULL, это означает, что запятая не найдена в строке. В этом случае выводится сообщение об ошибке и программа завершается.
  5. *Если pStr2 не равен NULL, мы устанавливаем `pStr2равнымNULL, чтобы отделить первую часть строки до запятой. Затем мы увеличиваем значениеpStr2` на 1, чтобы он указывал на следующую часть строки после запятой.**
  6. Мы выводим первую часть строки до запятой с помощью printf() и вторую часть строки после запятой также с помощью printf().
  7. Наконец, функция main() возвращает 0, указывая на успешное выполнение программы.

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


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

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

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