读书人

这个代码如何写啊

发布时间: 2012-02-22 19:36:55 作者: rapoo

这个代码怎么写啊?
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *p[4]={ "hello ", "world ", "come ", "on "};

// 请问怎么写可以实现用 strlen 语句输出4个字符串呢?
strlen
}

[解决办法]
char *s=NULL;
int i,t;
for(i=0; i < sizeof(p)/sizeof(char*);i++) {
s = p[i];
for(t = strlen(s);t> 0;t--)
putchar(*s++);
}
-_-

[解决办法]
他这是定义的指向字符串的数组, 没有那个5的要求~! 四个就够了
同理, 对指向字符的指针的指针不能用strlen, 只有指向字符的指针也不可以, 只有在指向字符的指针而且指针指向的内容是以 '\0 '结尾的情况下才能用strlen

#include <stdio.h>
#include <stdlib.h>
void main()
{
char *p[4]={ "hello ", "world ", "come ", "on "};
int i;
for(i=0; i <4; i++)
printf( "%s\n ",p[i]);

}


[解决办法]
一定要使用strlen, 这样:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char *p[4]={ "hello ", "world ", "come ", "on "};
int i;
for(i=0; i <4; i++)
printf( "%-8s || The length of string is:%d\n ",p[i], strlen(p[i]));

}
[解决办法]
那里会出现泄漏了?
是char *p[4]={ "hello ", "world ", "come ", "on "};
不是 char p[4]= "hell ";
啊.

前一个不会, 后一个要求是 char p[5];
因为
p[0]= 'h ';
p[1]= 'e ';
p[2]= 'l ';
p[3]= 'l ';
p[4]= '\0 ';

读书人网 >C++

热点推荐