2017-08-17 95 views
2
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]); 
    } 

我已经完成了上面的预期输出应该如下。 输出应该是:如何查找c中另一个字符串中字符串给定字符的索引?

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' 

但它不打印任何东西。这有什么不对?

+3

'iIndex'没有在第一个循环中初始化,所以你的程序可能会崩溃。 – dasblinkenlight

+3

[不要使用不安全的gets()函数](https://stackoverflow.com/questions/1694036/why-is-the-gets-function-so-dangerous-that-it-should-notbe -used) –

+3

'我'未申报。 – BLUEPIXY

回答

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; 
} 
相关问题