Error:lvalue required as increment operand,这个是什么问题?谁帮忙看下?
while(*(str+len)!='\0')
改成这样应该可以了!!
谢谢大家耐心的指导!!非常感谢!!
下面是书上给的程序:
#include<stdio.h>
main()
{
int len; /*定义len为基本整型变量*/
char *str[100]; /*定义字符型指针数组str*/ //编译的时候会警告,但不影响结果,改成char *str[100];就没问题了
printf("please input a string:\n");
gets(str); /*gets函数将输入的字符串放入数组str中*/
len=length(str); /*调用length函数*/
printf("%d\n",len); /*将结果输出*/
}
int length(char *p) /*自定义函数length*/
{
int n=0; /*定义变量n为基本整型*/
while(*p!='\0') /*当指针未指到字符串结束标志时执行循环体语句*/
{
n++; /*长度加1*/
p++; /*指针向后移*/
}
return n; /*返回最终长度*/
}
这样为啥就可以了呢?
虽然他定义了一个函数,用指针p去操作
但是最终在main函数中,str还是会传给int length(char *p) 这个函数,进行里面的++操作的
为啥这样就可以了?
[ 本帖最后由 计算机之祖 于 2015-9-7 23:03 编辑 ]