Написать функцию, которая ищет в заданной строке первое вхождение заданного символа - C (СИ)

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

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

Помогите пожалуйста с указателями... Написать функцию, которая ищет в заданной строке первое вхождение заданного символа (char *strchr(char *s, char c). Написал, но выдает ошибку
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define max 10
char *mtrspn(char *s, char c){
        static char resultStr[max];
        int i, j, cnt=0 ,n,a;
 
        for (i=0; i<strlen(s); i++) {
 
                        if(s[i]==c) for(n=0;n<i;n++)
                        resultStr[cnt]=a[i];

        }
 
        resultStr[cnt]='\0';
 
        return resultStr;     }

int main()
{
        char str1[80];

        puts("Vvedite stroki:\n");
      puts("1 stroka:\n") ; gets(str1);

        puts("Rezultat:\n");
        printf(" %s",mtrspn(str1));
        printf("\n");
        getch();
        return 0;
}

только там правильнее будет
resultStr[cnt]=a[i];
Конечно бредово как то, но мне сперва главное программу запустить, подскажите почему она не запускается?
только там правильнее будет
resultStr[cnt]=a[i];
Конечно бредово как то, но мне сперва главное программу запустить, подскажите почему она не запускается?

Решение задачи: «Написать функцию, которая ищет в заданной строке первое вхождение заданного символа»

textual
Листинг программы
#include <stdio.h>
#include <string.h>        
char *strchr(char *s, char c){
    int a=strlen(s);
    while (a>0)
        if ( *(s+(--a)) == c )
            return s+a;
    return NULL;
}
 
int main(void){
        char *str = "abecdefgh", c = 'e';
        
        printf("All string: %s\n", str);
        printf("Starting from %c: %s\n", c, strchr(str, c));
        
        return 0;
}

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

  1. Включаем необходимые заголовочные файлы
  2. Определяем функцию strchr, которая принимает два аргумента: s — строка, в которой нужно найти символ, и c — символ, который нужно найти
  3. Инициализируем переменную a значением strlen(s)
  4. Запускаем цикл while, который выполняется, пока значение a больше 0
  5. Внутри цикла проверяем, равен ли символ, на который указывает s+(--a), заданному символу c
  6. Если условие выполняется, то возвращаем s+a
  7. Если цикл закончился и символ не найден, то возвращаем NULL
  8. В функции main инициализируем строку str значением abecdefgh и символ c значением 'e'
  9. Выводим на экран исходную строку с помощью printf
  10. Выводим на экран подстроку, начиная с символа 'e', с помощью printf
  11. Завершаем функцию main возвратом 0

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


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

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

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