Отправка строки 2-го массива в качестве аргумента

1234ould
1234567ould
12ould

Что я хочу сделать, так это взять строку из приведенного выше 2D-массива и передать ее в качестве аргумента функции "strindex ()", которая возвращает индекс, в котором "ould" находится в строке, а в противном случае возвращает -1. Затем это значение индекса присваивается элементу массива «q []». Когда все строки заполнены, печатается индекс крайнего правого появления «ould» из всех строк.

int strindex(char s[],char t[])
{   int i,j,k;
    for(i=0;s[i]!='\0';++i)
    {   for(j=i,k=0;t[k]!='\0'&&t[k]==s[j];k++,j++)
            ;
        if (k>0 && t[k]=='\0')
            return i;
    }
    return -1;
}

int getline(char s[],int lim)
{   int i,c;
    i=0;
    while((--lim)>0 && (c=getchar())!=EOF && c!='\n')
        s[i++]=c;
    if (c=='\n')
        s[i++]='\n';
    s[i]='\0';
    return i;
}

void main(void)
{   char line[MAXLIM],p[10][MAXLIM];
    int i=0,j=0,k=0,q[10],max;
    while((getline(line,MAXLIM))>0)
    {   for(;j<strlen(line);j++)
        {   p[i][j] = line[j];
        }
i++;
}
***max=0;
for(;k<i;++k)
{       
    q[k]=strindex(p[k],pattern);

    if (q[k]>max)
    {   
        max=q[k];
    }***
}


getch();
clrscr();

}

Но когда я отлаживал программу, она работала правильно для первой строки с назначением max = 4, но после этого, когда я увидел значение q [k], ему было присвоено -1 для обеих строк, что привело к разрушению моей программы. ВАЖНО: первый параметр strindex () принимает одномерный массив, поэтому вместо p [k] [] я написал p [k]. ВАЖНО: *** - это основная часть программы.

Вы должны предоставить Минимальный полный проверяемый пример.

Eric Postpischil 28.10.2018 12:05

Добавлен минимально полный проверяемый пример. Спасибо @Eric Postpischil

Vishesh Maheshwari 28.10.2018 12:17

Это не полный и не поддающийся проверке пример. pattern не определяется. MAXLIM не определяется. <stdio.h> и <stdlib.h> не включены. Два экземпляра *** мешают компиляции. Код должен быть компилируемым: когда кто-то копирует ваш код, вставляет его в файл и компилирует, он должен компилироваться без каких-либо изменений.

Eric Postpischil 28.10.2018 13:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При копировании line в p[i] в первом цикле в main, j не устанавливается в ноль. Он сбрасывается в ноль один раз перед началом первого цикла, но затем первая копия увеличивает j и остается на этом увеличенном значении, поэтому оно не равно нулю, когда начинается следующая попытка копирования строки.

Кроме того, код не может гарантировать, что каждая строка, скопированная в p[i], заканчивается нулевым символом.

Спасибо, @Eric Postpischil, и извиняюсь за неудобства, вызванные неправильным кодом ?

Vishesh Maheshwari 28.10.2018 14:48

Другие вопросы по теме