如何在c中找到另一个字符串中字符串给定字符的索引?

时间:2017-08-17 03:32:53

标签: c

char string[5][5]={{'a','l','p','h','b'},{'c','d','e','f','g'},
                   {'i','j','k','m','n'},{'o','q','r','s','t'},
                   {'u','v','w','x','y'}};
char strsearch[100];
int rowindex[100];
int colindex[100];
printf("\nEnter String=");
gets(strsearch);
int iIndex,jIndex=0;
int count=0;
int row,column=0; 
for(row=0;row<5;row++)
    {
        for(column=0;column<5;column++)
            {
                if(string[row][column]==strsearch[i])
                    {
                        rowindex[iIndex]=row;
                        colindex[jIndex]=column;
                        iIndex++;
                        jIndex++;
                        count++;
                        i++;
                        //printf("%d",count);
                    }
            }
    }

for(iIndex=0;iIndex<count;iIndex++)
    {
        printf("row=%d",rowindex[iIndex]);
        printf("\ncol=%d",colindex[iIndex]);
    }

我做过上面预期的输出应该如下。 输出应该是:

    Enter String=mona
    row=2,3,2,0 //index of row of character 'm','o','n','a'
    column=3,0,4,0 ////index of column of character 'm','o','n','a'

但它没有打印任何东西。这有什么问题?。

1 个答案:

答案 0 :(得分:0)

试试这个。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char string[5][5]={{'a','l','p','h','b'},{'c','d','e','f','g'},
    {'i','j','k','m','n'},{'o','q','r','s','t'},
    {'u','v','w','x','y'}};
char strsearch[100];
int rowindex[100];
int colindex[100];

int main(int argc, const char *argv[])
{
    printf("\nEnter String=");
    gets(strsearch);
    int count = 0;
    for (int i = 0; i < strlen(strsearch); i++) {
        for(int row = 0; row < 5; row++)
        {
            for(int column = 0; column < 5; column++)
            {
                if(string[row][column] == strsearch[i])
                {
                    rowindex[count] = row;
                    colindex[count++] = column;
                }
            }
        }
    }

    printf("row");
    char prefix = '=';
    for(int i = 0; i < count; i++)
    {
        printf("%c%d", prefix, rowindex[i]);
        prefix = ',';
    }


    printf("\ncolumn");
    prefix = '=';
    for(int i = 0; i < count; i++)
    {
        printf("%c%d", prefix, colindex[i]);
        prefix = ',';
    }
    printf("\n");

    return 0;
}