黑马程序员技术交流社区
标题:
C语言-字符数组key 得到value
[打印本页]
作者:
T.H.T
时间:
2015-4-25 14:37
标题:
C语言-字符数组key 得到value
#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';
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2