一个字符串中,如果有空字符,我如何得到这个串的长度?

liujf 2002-04-24 09:40:35
//Thx
...全文
655 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
garfield_82 2002-04-26
  • 打赏
  • 举报
回复
如果你用STL的话,可以这样:
# include <iostream>
# include <string>
using namespace std;
void main ()
{
string str="asdf sadf asdf";

cout << str.size() << endl;
}

result :14
freezingfire 2002-04-24
  • 打赏
  • 举报
回复
如果你所谓的空字符不是空格的话的确只能自己去算了,可以在一开始的时候将字符串全部填充为某个特定的值,某个在实际应用中不会出现的值,然后自己手动检查。

c/c++默认以'\0'即8位数值0作为字符串的结尾,如果你操作的真的是字符串,建议不要改变c/c++的默认逻辑。
mage_ningxia 2002-04-24
  • 打赏
  • 举报
回复
只有自己操纵指针去计算了,不过可要小心访问内存越界的错误。一般情况下好像不能出现在字符串中间出现空字符('\0')的情况(无论你使用c\c++中的什么函数操作都不能出现),
liujf 2002-04-24
  • 打赏
  • 举报
回复
空字符当然是'\0', 如果是空格,还要去问啊? 上面有几位,一看就是C语言
新手
jyc_nj 2002-04-24
  • 打赏
  • 举报
回复
空字符 = 空格字符?那和一般的字符没什么区别.
晨星 2002-04-24
  • 打赏
  • 举报
回复
最简单的方法是,自己编写一个计算长度的函数:

int GetStringLength(const char* s)
{
char *p = s;
int len = 0;
while(*p)
{
if(*p != ' ')
len++;
p++;
}
return len;
}

可是,求字符串长度,为什么要不算空格呢?
fangrk 2002-04-24
  • 打赏
  • 举报
回复
#include <string.h>
#include <iostream.h>
int main()
{ char buff[]="I am a boy,you are a girl!";
cout<<strlen(buff)<<endl;
return 0;
}
答案:26
jerjiao 2002-04-24
  • 打赏
  • 举报
回复
空字符('\0')在c的字符串中表示串的结束。既然字符串中出现
了空字符,表示此串从此揭短了,字符串只有前半部分。
您只有人工的读出各字节的值然后恢复了
savvylearn 2002-04-24
  • 打赏
  • 举报
回复
不知道你碰到的空字符指的是什么,
如果是空格的话那和正常的没什么差别
如果是'\0'的话,属于系统默认的字符串结束,劝你别费尽了
tigerfox 2002-04-24
  • 打赏
  • 举报
回复
如果不是NULL
strlen()
zhukejun 2002-04-24
  • 打赏
  • 举报
回复
字符串中怎么会有空字符呢?
结构可以有,得到长度用sizeof()
譬如:
struct A
{
};
int n;
n = sizeof(A);
albertjin123 2002-04-24
  • 打赏
  • 举报
回复
这个真是伤脑筋
mylove0618 2002-04-24
  • 打赏
  • 举报
回复
各位大哥,空字符到底是什么意思?下面有一段资料,大家有兴趣可以看一下:
1.空白符。空白符不是一个字符,是空格符,换行符和制表符等的统称。
2.空格符。空格符是一个ASCII码字符。属于空白符。
3.空字符。空字符是一个ASCII码字符,码值为0。在c/c++中有一个特殊的用途,即用来作为字符串的结束符。用转义序列方法表示就是'\0'.
所以如果楼主是指第三个而言的话,我看使用strlen就行了。

70,032

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧