Вот решил поделиться, элементарные функции для работы с текстом - C (СИ)

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

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

Товарищи вот даже не знаю есть ли аналоги в си, тут написал для себя и решил поделиться может кому та и понадобиться
// Функции.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
 
/*Возращает длину строки*/
int strlen(char s[])
{
    int i = 0; 
    while (s[i] != '\0')
        i++;
    return i; 
}
 
/*Находит позицию символа и возращает номер позиции, поиск начинаеться с конца на начало*/
int strscan(char s[], char *c)
{
    int size = strlen(s);
    int k = 0; 
    for(int i=size; i>=0; i--)
    {       
        if(s[i] == *c)
        {
            return size-k;
        }
        k++; 
    }
    return 0;
}
 
/*Возращает из полного пути файла расширение файла*/
void strext (char s[], char e[])
{
    char m[50]; 
    int c = strscan(s, ".");
    int nc =0;
    for(int i=c+1; i<=strlen(s)-1; i++)
    {
        m[nc] = s[i];
        nc++;
    }
    m[nc] = 0; 
    strcpy(e, m);
}
 
/*Возращает из полного пути файла имя файла*/
void strnam(char s[], char e[])
{
    char b[512]; 
    int n = 0;
    int flash = strscan(s, "\\");
    int toch = strscan(s, ".");
    for(int i=flash+1; i<=toch-1; i++)
    {
        b[n] = s[i];
        n++;
    }
    b[n] = 0; 
    strcpy(e, b); 
}

int _tmain(int argc, _TCHAR* argv[])
{
    int m = strlen("Это моя строка");               /*Пример использования*/
    int n = strscan("C:\\Acord\\inf\\1.txtww", ".");  
 
    char c[520]; 
    strext("c:\\acord\\AutoRun.exe", c); 
 
    char x[520];
    strnam("c:\\acord\\AutoRun.exe", x);
 
    return 0;
}

Решение задачи: «Вот решил поделиться, элементарные функции для работы с текстом»

textual
Листинг программы
void strfnex(char s[], char ex[])
{
    int conec = strscan(s, "\0");
    int flash = strscan(s, "\\");
    char buf[255]; 
    int p = 0; 
    for(int i=flash+1; i<=strlen(s); i++)
    {
        buf[p] = s[i]; 
        p++;
    }
 
/*как использовать*/
    char t[520]; 
    strfnex("c:\\acord\\AutoRun.exe", t); /*вернет: AutoRun.exe*/
}

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

  1. Входные данные функции: s[] - исходная строка, ex[] - строка, которую необходимо найти и заменить.
  2. Первая строка кода находит длину строки s[] с помощью функции strlen().
  3. Вторая строка кода находит позицию в строке s[], где встречается символ обратной косой черты \``, с помощью функцииstrscan()`.
  4. Третья строка кода объявляет буфер buf[] для хранения результата.
  5. Четвертая строка кода инициализирует счетчик p равным нулю.
  6. Пятая строка кода начинает цикл, который проходит по всем символам в строке s[] с позиции, следующей за последней обратной косой чертой, до конца строки.
  7. Внутренний цикл копирует каждый символ из строки s[] в буфер buf[] и увеличивает счетчик p на единицу.
  8. Функция возвращает буфер buf[] с результатом.
  9. Пример использования функции: строка c:\\acord\\AutoRun.exe преобразуется в AutoRun.exe с помощью функции strfnex().
  10. Функция может быть использована для извлечения имени файла из полного пути к файлу.

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


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

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

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