Вот решил поделиться, элементарные функции для работы с текстом - 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*/ }
Объяснение кода листинга программы
- Входные данные функции:
s[]
- исходная строка,ex[]
- строка, которую необходимо найти и заменить. - Первая строка кода находит длину строки
s[]
с помощью функцииstrlen()
. - Вторая строка кода находит позицию в строке
s[]
, где встречается символ обратной косой черты\``, с помощью функции
strscan()`. - Третья строка кода объявляет буфер
buf[]
для хранения результата. - Четвертая строка кода инициализирует счетчик
p
равным нулю. - Пятая строка кода начинает цикл, который проходит по всем символам в строке
s[]
с позиции, следующей за последней обратной косой чертой, до конца строки. - Внутренний цикл копирует каждый символ из строки
s[]
в буферbuf[]
и увеличивает счетчикp
на единицу. - Функция возвращает буфер
buf[]
с результатом. - Пример использования функции: строка
c:\\acord\\AutoRun.exe
преобразуется вAutoRun.exe
с помощью функцииstrfnex()
. - Функция может быть использована для извлечения имени файла из полного пути к файлу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д