以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。
#include<stdio.h>#include<string.h>voidfun(charstr[]){inti,j,k;for(i=0.j=______;i<j;i...
#include <stdio.h>
#include <string.h>
void fun(char str[ ])
{ int i,j,k;
for(i=0.j=______; i<j; i++,j--)
{ k=str[i]; str[i]=str[j]; str[j]=k;
}
}
答案是strlen(str)-1, 我想问的是可不可以写成strlen(str[ ])-1,以及为什么 展开
#include <string.h>
void fun(char str[ ])
{ int i,j,k;
for(i=0.j=______; i<j; i++,j--)
{ k=str[i]; str[i]=str[j]; str[j]=k;
}
}
答案是strlen(str)-1, 我想问的是可不可以写成strlen(str[ ])-1,以及为什么 展开
展开全部
只有在函数传参的时候可以不指定数组的长度!
strlen的原型:
extern unsigned int strlen(char *s);
需要一个char *s的参数。也就是一个字符数组的地址。
所以填strlen(str)不用减一,strlen遇到'\0'返回!
strlen的原型:
extern unsigned int strlen(char *s);
需要一个char *s的参数。也就是一个字符数组的地址。
所以填strlen(str)不用减一,strlen遇到'\0'返回!
追问
i=0,怎么能不减一。。。
“只有在函数传参的时候可以不指定数组的长度!”
就喜欢这种一针见血的话!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按道理是应该可以,你自己编译器上试下不就可以了。str和str[]应该都是指向首地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询