Разделить строку на две строки - C (СИ)

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

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

Скажите, пожалуйста, как можно одну строку разделить на две другие. Например:
 printf("введите число с плавающей точкой по правилам Pascal: ");
    scanf("%s", plavt);
Я ввожу вещественное число : 0.1452E-2. Как мне теперь эту строку поделить на строку до точки, и на строку после точки? Чтоб получилось так 0. и 1452E-2.

Решение задачи: «Разделить строку на две строки»

textual
Листинг программы
#include <stdio.h>
 
#define LIM 1001
 
int main()
{
    char c;
    char str1[LIM];
    char str2[LIM];
    
    int flag = 0;
    int i, j, k;
    i = j = k = 0;
    while ((c = getchar()) != '\n' && i < LIM) {
        if (c == '.') {
            str1[j++] = c;
            flag = 1;
        }
        else
            if (!flag)
                str1[j++] = c;
        else
            if (flag)
                str2[k++] = c;
        ++i;
    }
    str1[j] = str2[k] = '\0';
    
    puts(str1);
    puts(str2);
    return 0;
}

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

В этом коде выполняется следующая задача:

  1. Разделение ввода пользователя на две строки, используя символ '.' в качестве разделителя.
  2. Если символ '.' не встречается, то вторая строка остается пустой.
  3. Код принимает во внимание возможность, что вторая строка может быть длиннее первой.
  4. Код не проверяет переполнение буфера, что является серьезной проблемой в программах, работающих с строками в C.
  5. Если вторая строка оказывается пустой, код может выдать неопределенное поведение.
  6. Код не содержит проверки на конец строки ('\0').
  7. Код не содержит обработки ошибок.
  8. Код не содержит выравнивания границ.
  9. Код не содержит использования функций для работы со строками, таких как strlen() или strcpy().
  10. Код не содержит комментариев.

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


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

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

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