A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© T.H.T 中级黑马   /  2015-4-25 14:37  /  907 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

int main(int argc, const char * argv[])
{

    char strs[4][2][10]={{"A","13"},{"C","19"},{"B","14"},{"D","18"}};
    char *p_strs=&strs;

   
   char getCharArrayKeyValue(char *p,int p_k,int p_j,int p_i,char *p_i_key,char *p_i_value);
    char key[10]="A";//注意,一般要比存放的多一个元素放空,表示结束
    char *p_key=&key;
   
    char value[10];
    char *p_value=&value;
    printf("value:%s \n",value);
   
    getCharArrayKeyValue(p_strs,4,2,10,p_key,p_value);
     printf("value:%s\n",p_value);
   
   
   
    return 0;
}

/**
*char strs[4][2][10];
*char strs[k][j][i];
char str[4][2][10]={{"A","13"},{"C","83"},{"B","63"},{"D","18"}};
printf("str:%s\n",str[0][0]);
printf("str:%s\n",str[0][1]);
printf("str:%s\n",str[1][0]);
printf("str:%s\n",str[1][1]);

str:A
str:13
str:C
str:83

**/

char getCharArrayKeyValue(char *p,int p_k,int p_j,int p_i,char *p_i_key,char *p_i_value)
{
    char strs[p_k][p_j][p_i];
   
   // char tempStr[10] ;
   
    //char newStr[1000];
    char tempChar;
    char *p_tempChar=&tempChar;
   // int i=0;
   // while (1) {
    for (int k=0; k<p_k; k++) {
        
        for (int j=k*p_j; j<p_j*(k+1); j++)
        {
            for (int i=j*p_i; i<p_i*(j+1); i++)
            {
                *p_tempChar=*(p+i);
               
               //  if(tempChar=='\0')
               // {
                   // continue;
                //}
                printf("每一个字符%d  %d   %d: %c %d\n",k,j%p_j,i,tempChar,i%p_i);
               strs[k][j%p_j][i%p_i]=tempChar;
         
            }
            
        }
        
    }
   
    /**
     遍历显示
     */
    for (int k=0; k<p_k; k++) {
        for (int j=0; j<p_j; j++) {
            printf("str:%s\n",strs[k][j]);
            printf("str:%s\n",strs[k][j]);
        }

    }
   
   
    /*
     *得到key 字符串
     */
   
    char v_s_newStr[10000];
    char v_s_tempChar;
    char *v_s_p_tempChar=&v_s_tempChar;
    int i=0;
    while (1) {
        
        *v_s_p_tempChar=*(p_i_key+i);
        v_s_newStr[i ]=v_s_tempChar;
        if(v_s_tempChar=='\0')
        {
            break;
        }
        i++;
    }
   
    printf("得到的字符串:%s\n",v_s_newStr);

   
   
   
   
    for (int k=0; k<p_k; k++) {
        for (int j=0; j<p_j; j++) {
            printf("strs[%d][%d]满足条件:%s   %s\n",k,j,strs[k][j],v_s_newStr);
           // printf("strs[k][j]满足条件:%s\n",strs[k][j]);
            printf("是否相等:%d\n",strcmp(strs[k][j],v_s_newStr)==0);
            if(strcmp(strs[k][j],v_s_newStr)==0)
            {

               // p_i_value=&strs[k][1];
                if(p_i_value){
                    strcpy(p_i_value,   strs[k][1]);
                    
                    printf("满足条件:%s  %s\n",strs[k][1],p_i_value);
                }

            }

        }
        
    }
   
    printf("\n\n");
    printf("str:%s\n",strs[0][0]);
    printf("str:%s\n",strs[0][1]);
    printf("str:%s\n",strs[1][0]);
    printf("str:%s\n",strs[1][1]);
    printf("str:%s\n",strs[2][0]);
    printf("str:%s\n",strs[2][1]);
    printf("str:%s\n",strs[3][0]);
    printf("str:%s\n",strs[3][1]);
     
   

   
            return 'A';
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马