这个问题有错吗?

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:17:37
#include<string.h>
char *ss(char *s)
{
return s+strlen(s)/2;
}
main()
{
char *p,*str="abcdefgh";
p=ss(str);
printf("%d\n",p);
}

如果有的话,请指明.然后请给每句注解.

我猜你最后一句写错了一点。printf("%s\n",p);//你意思应是输出字符串。
char *ss(char *s) //传入一个字符指针,返回一个字符指针。
{
return s+strlen(s)/2; //strlen是求字符串的长度,将s+strlen(s)/2就是将s这个指针偏移到字符串的中间;然后返回这个已经偏移了的指针。
}

main()
{
char *p; //声明字符指针
char *str="abcdefgh"; //给字符串赋值
p=ss(str); //调用上面的函数
printf("%s\n",p); //打印偏移后的字符串
}

//结果====================================
efgh