c++-C++ 字符串 长度 指针

问题描述

C++ 字符串 长度 指针
int main()
{
char const * pStr=""the long string"";
char const *p=pStr;
while(*p++);
cout<<(p-pStr)<<endl;
}

请问输出结果为什么是16,而不是15?

解决方案

因为*的优先级比++高,所以当p指向的时候还会执行一次空循环。

解决方案二:
第15次执行完会执行下一次,也就是第16次,第16次位FALSE了,才跳出循环

解决方案三:
因为你的 p 指针在执行完 NULL 判断后,又加了一,所以就多出来一个。

解决方案四:
主要的原因是i++与++i的区别,i++是先做其他后自加,而++i是先自加后再做其他。当十五次,wile判断的是p的最后一个,不为null,所以还在while循环中,但是这p已经指向pStr后地址,这次再来一次while判断,就是空的,但是p指针还会自己一次,所以他的指针就指向pStr后个第二个地址。所以得到的结果是16.

解决方案五:
楼主为什么认为不是16 而是15呢?

解决方案六:
while(*p++);
等于
while(*p)
p = p + 1;
p = p + 1;

时间: 2024-08-30 04:36:58

c++-C++ 字符串 长度 指针的相关文章

c++-函数中字符串用cout输出与字符串长度没有关系吧!

问题描述 函数中字符串用cout输出与字符串长度没有关系吧! 下面的代码运行于VS2012的编译环境,目的是为了对出现的19个国家名称进行按大到小排序,遗憾的是,结果结果并没有得出. 但有一点,若是将主程序中的 pCountryName这一指针数组中的"United States of America"缩减一个字符如变为"United State of America",程序将运行无恙. 同样的代码,放置于Vc++6.0的编译环境却不会出现问题! 程序在执行过程中,

char-c++问题 指向字符串的指针

问题描述 c++问题 指向字符串的指针 #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { char *s = "Hello"; char *t = "World"; int i = strcmp(s, t); if (i > 0) cout << "s>t"

2013级C++第17周项目——字符串、指针应用

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-体会函数参数传递] 1.下面三段程序都试图通过定义函数,实现实际参数在必要时的交换,哪些能够实现,哪些不能实现?通过运行程序和单步执行,让自己对这一过程更加清楚,然后请在博文中给出明确的回答,并用你自己的话展开描述.) (1) #include <iostream> using namespace std; void jiaohuan(int x, int y

js 判断字符串长度:计算字符串长度/判断空

计算字符串长度可用的三种方法:   echo "$str"awk '{print length($0)}'  expr length "$str"  echo "$str"wc -c  但是第三种得出的值会多1,可能是把结束符也计算在内了. 判断字符串为空的方法有三种:   if [ "$str" = "" ]  if [ x"$str" = x ]  if [ -z "$st

测字符串长度函数

函数|字符串 '*************测字符串长度************** Function CheckStringLength(txt)txt=trim(txt)x = len(txt)y = 0for ii = 1 to xif asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then '如果是汉字y = y + 2elsey = y + 1end ifnextCheckStringLength = y End Function

ASP获取字符串长度的自定义函数

ASP获取字符串长度的自定义函数 '----------------------------------------------------------------'' getStrLen' 获取字符长度,一个中文字符长度算 2' 参数:' str 需要获取长度的字符串' 返回值:整数 (字符串的长度)'----------------------------------------------------------------'Function GetStrLen(str)If IsNull

JavaScript如何判断字符串长度(英文占1个字符,中文汉字占2个字符)

//计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len ++; } } return len; } 方法二: function strlen(str){

sp判断中西混字符串长度

sp判断中西混字符串长度 ==============================  函 数 名:StringLength  作    用:判断字符串长度  参    数:需进行判断的文本Txt  ==============================  Private Function StringLength(Txt)   Txt=Trim(Txt)   x=Len(Txt)   y=0   For ii = 1 To x    If Asc(Mid(Txt,ii,1))<=2 o

支持中文的PHP按字符串长度分割成数组代码

  自己编写的PHP按字符串长度分割成数组代码,支持中文字符,下面给出代码和使用方法,有需要的小伙伴可以参考下. 以下是我编写的代码,实现对中英文混杂字符进行分割: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <?php function mbStrSplit ($string, $len=1) { $start = 0; $strlen = mb_strlen($string); while ($strlen) { $array[] =