码迷,mamicode.com
首页 > 其他好文 > 详细

一道题检测是否理解指针

时间:2015-05-18 18:59:33      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:指针   c++   

     这道题给我的感觉就是,指针跳过来跳过去,眼花缭乱

     

     大家也来看看


代码如下

#include <iostream>

using namespace std;

int FindSubString( char* pch )
{
	int   count  = 0;
	char  * p1   = pch;
	while ( *p1 != '\0' )
	{
		if ( *p1 == p1[1] - 1 )
		{
			p1++;
			count++;
		}
		else
		{
			break;
		}
	}
	int count2 = count;
	while ( *p1 != '\0' )
	{
		if ( *p1 == p1[1] + 1 )
		{
			p1++;
			count2--;
		}
		else
		{
			break;
		}
	}
	if ( count2 == 0 )
		return(count);
	return(0);
}
void ModifyString( char* pText )
{
	char  * p1   = pText;
	char  * p2   = p1;
	while ( *p1 != '\0' )
	{
		int count = FindSubString( p1 );
		if ( count > 0 )
		{
			*p2++ = *p1;
			sprintf( p2, "%i", count );
			while ( *p2 != '\0' )
			{
				p2++;
			}
			
			p1 += count + count + 1;
		}
		else
		{
			*p2++ = *p1++;
		}
	}
}
void main( void )
{
	char text[32] = "XYBCDCBABABA";
	ModifyString( text );
	printf( text );
}


运行结果

技术分享


以前没用过sprintf函数,虽然baidu了一下,还是不太懂

这里,如果把

while ( *p2 != '\0' )
{
	p2++;
}
注释掉


则输出结果如下
技术分享

感觉比较怪异

一道题检测是否理解指针

标签:指针   c++   

原文地址:http://blog.csdn.net/u011694809/article/details/45824155

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!