
用c++设计一个函数,以参数方式输入一个字符串,返回该字符串的长度
5个回答
展开全部
传入指向首字符的指针即可。
#include<cstring>
std::size_t getlength(const char* s)
{
return std::strlen(s);
}
不用库函数的话,可以这样:
int getlength(const char* s)
{
const char* t = s;
while(*t != '\0')
++t;
return t - s;
}
sizeof在编译期返回对象所占空间的字节数。对于数组,返回数组的长度(而不是字符串长度);对于字符串字面量,返回字符串长度加1(字面量的类型是数组类型,长度等于字符串长度加结尾的'\0'占的1字节);对于指针,返回指针本身所占的字节数,在32位平台下一般为4,和字符串长度无关。因此所有情况下sizeof都无法直接计算字符串的长度。
====
[原创回答团]
#include<cstring>
std::size_t getlength(const char* s)
{
return std::strlen(s);
}
不用库函数的话,可以这样:
int getlength(const char* s)
{
const char* t = s;
while(*t != '\0')
++t;
return t - s;
}
sizeof在编译期返回对象所占空间的字节数。对于数组,返回数组的长度(而不是字符串长度);对于字符串字面量,返回字符串长度加1(字面量的类型是数组类型,长度等于字符串长度加结尾的'\0'占的1字节);对于指针,返回指针本身所占的字节数,在32位平台下一般为4,和字符串长度无关。因此所有情况下sizeof都无法直接计算字符串的长度。
====
[原创回答团]
展开全部
int alphabetic(char); 这是函数声明,也可以写成这样:int alphabetic(char c);两种写法都是正确的,只是第二种方法更加明了
int longest(char []); 也是一样的道理
关于if(alphabetic(string[i]))是指如果函数alphabetic(string[i])返回0就不执行,否则执行,如alphabetic(string[i])=1,则执行if语句,if(flag)也是一样的用法,如果flag=1,4……就表示符合条件,反之flag=0则表示不符合条件
函数int longest(char string[]) 的作用是找出最长字符串第一个字符所在的位置(place),
这东西最主要还是理解,以后还有什么问题可以问我啊,我也是初学的,想同大家交流一下啊
int longest(char []); 也是一样的道理
关于if(alphabetic(string[i]))是指如果函数alphabetic(string[i])返回0就不执行,否则执行,如alphabetic(string[i])=1,则执行if语句,if(flag)也是一样的用法,如果flag=1,4……就表示符合条件,反之flag=0则表示不符合条件
函数int longest(char string[]) 的作用是找出最长字符串第一个字符所在的位置(place),
这东西最主要还是理解,以后还有什么问题可以问我啊,我也是初学的,想同大家交流一下啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有编译器,随手写了个,有问题自己调吧
int strlen(const char *pStr)
{
int ret=0;
if(NULL == pStr)
{
return ret;
}
while('\0' != *pStr++)
{
ret++;
}
return ret;
}
int strlen(const char *pStr)
{
int ret=0;
if(NULL == pStr)
{
return ret;
}
while('\0' != *pStr++)
{
ret++;
}
return ret;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream.h>
int mystrlen(char *str)
{
int cnt = 0;
while((cnt++,*str++));
return cnt-1;
}
int main()
{
char str[100];
int length;
cout<<"输入字符串:"<<endl;
cin>>str;
length = mystrlen(str);
cout<<str<<"长度为:"<<length<<endl;
return 0;
}
int mystrlen(char *str)
{
int cnt = 0;
while((cnt++,*str++));
return cnt-1;
}
int main()
{
char str[100];
int length;
cout<<"输入字符串:"<<endl;
cin>>str;
length = mystrlen(str);
cout<<str<<"长度为:"<<length<<endl;
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
size_t GetStrLen(const char * strSrc)
{
if(!strSrc) return -1;
size_t i = 0;
while(*strSrc++ != '\0')
{
++i;
}
return i;
}
{
if(!strSrc) return -1;
size_t i = 0;
while(*strSrc++ != '\0')
{
++i;
}
return i;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询