这个代码怎么写啊?
#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 ';