这个字符串程序为什么第三个成员没有输出来,且第二个成员前面有一个空格,是咋回事
这个字符串程序为什么第三个成员没有输出来,且第二个成员前面有一个空格,是怎么回事?
如题
------解决方案--------------------
你看一下str[0] str[1] str[2] 三个地址是连续的嘛,如果不是连续的,把str[0]给p1,下面的操作应该就不是可行的吧!
给你看一下我这边编译器中它们的地址!
------解决方案--------------------
如题
#include "stdafx.h"
#include "stdio.h"
#include <stdlib.h>
#include "string.h"
int main(void)
{
int i, j;
char *str[3] = {"ab", "cdu", "opq"};
char *p1;
p1 = str[0];
for(i=0; i<3; i++)
{
if(i == 0)
{
for(j=0; j<strlen(str[0])+1; j++)
{
printf("%c", *(p1+j));
}
printf("\n");
}
if(i==1)
{
for(j=0; j<strlen(str[i])+1; j++)
{
printf("%c", *(p1+strlen(str[0])+1+j));
}
printf("\n");
}
if(i==2)
{
for(j=0; j<strlen(str[i])+1; j++)
{
printf("%c", *(p1+strlen(str[0])+1+strlen(str[1])+1+j));
}
printf("\n");
}
}
return 0;
}
------解决方案--------------------
char *str[3] = {"ab", "cdu", "opq"};
char *p1;
p1 = str[0];
你看一下str[0] str[1] str[2] 三个地址是连续的嘛,如果不是连续的,把str[0]给p1,下面的操作应该就不是可行的吧!
给你看一下我这边编译器中它们的地址!
------解决方案--------------------
5 int main(void)
6 {
7 int i, j;
8 char *str[3] = {"ab", "cdu", "opq"};
9
10 char *p1 = NULL;
11
12 for(i=0; i<3; i++)
13 {
14 p1 = str[0];
15 if(i == 0)
16 {
17 for(j=0; j<strlen(str[0])+1; j++)
18 {