char *p;变量p指向一个字符串,不使用其它变量以及有返回值的函数,仅用p,求出p指向的字符串的字节数!今天碰见这个问题,觉得有点意思,发过来让大家把玩把玩!下面是我做的控制台程序,关键代码都已去掉!你填上你自己的吧!#include <iostream>
using namespace std;void main()
{
while(1)
{
char *p=new char[300];//注意此处是300,你的代码要能够支持300个字符的字符串;
cin>>p; //此处填上你的代码!
delete [] p;}
return ;
}
using namespace std;void main()
{
while(1)
{
char *p=new char[300];//注意此处是300,你的代码要能够支持300个字符的字符串;
cin>>p; //此处填上你的代码!
delete [] p;}
return ;
}
解决方案 »
- 什么时候需要复制一个句柄? 不同进程之间传递句柄没有意义啊!
- 用mfc的对话框模式做了一个地铁查询系统,只能进行第一次查询,第二次就会给出错误结果,怎么改?
- 求助写入文本数据乱码
- 【VC编程】如何编制一个启动闪烁界面?如同打开一个Eclipse应用软件那样的画面:先出来一幅图片,几秒后,再出来一个空白windows窗口? 先谢谢了!
- atl怎么样调用可执行文件并传递参数
- 为什么向表中插入数据时总是报错??
- 关于指针的问题
- 怎样得到新建的字框架的指针
- 请问为什么每次我打开一个Project,总是“cannot access the ClassView information file”,让后我的ClassView里面就什么都没有。快急死了,求各位帮忙!!
- 几个vc的常识性问题,谢谢PP
- settime问题?
- 关闭窗口中的模式对话框后,整个窗口不再是顶层
p[0]=1;
while (*p++!='\0')
{
p[0]=p[0]+1;
}
// p[0]=p[0]+1;
printf("num:%d",p[0]);呵呵
using namespace std;void main()
{
while(1)
{
char *p=new char[300];
cin>>p;
if (p==NULL)
{
cout<<"the count is 0"<<endl;
}
else
if (*p==NULL)
{
cout<<"the count is 1"<<endl;
}
else
if (*(p+1)==NULL)
{
cout<<"the count is 2"<<endl;
}
else
{
*((short *)p)=2;
p=p+2;
while(true)
{
if (*p==NULL)
{
cout<<*((short *)(p-2))+1<<endl;
p=p-*((short *)(p-2));
break;
} p=p+1;
if (*p!=NULL)
{
*((short *)(p-1))=*((short *)(p-3))+2;
p=p+1;
}
else
{
*((short *)(p-3))+=1;
cout<<*((short *)(p-3))+1<<endl;
p=p-*((short *)(p-3));
break;
}
}
}delete [] p;
}
return ;
}
using namespace std;int main()
{
while(1)
{
char *p=new char[300];//注意此处是300,你的代码要能够支持300个字符的字符串;
cin>>p;
//此处填上你的代码!
if(*p == '\0')
{
cout<<"字符串长度:0"<<endl;
}
else if(*(p+1) == '\0')
{
cout<<"字符串长度:1"<<endl;
}
else
{
*((short *)p) = 2;
p += 2;
while(*p != '\0' && *(p+1) != '\0')
{
*((short *)p) = *((short *)p - 1) + 2;
p += 2;
}
if(*p == '\0')
{
cout<<"字符串长度:"<<*((short *)p-1)<<endl;
}
else
{
cout<<"字符串长度:"<<*((short *)p-1)+1<<endl;
}
}
delete [] p;
}
return 0;
}
原题地址:http://www.sqlite.com.cn/bbs/topicdisp.asp?tid=110
几个很有挑战性的编程题偶然看见的真的很不错!大家看看!过几天我给答案!
(以下题目皆不得始用已有库函数) 1. 不另申请变量,交换两个整型变量,要求两种方法。 2. 不另申请变量,统计指定字符串的长度。 3. 不用if、三目运算符以及其它条件判断语句,写一个求两个数中较大值的函数。
因为编译器就是把数组当指针来看和对待的。char *p = new char[300];那么 p[0] 和 *p 完全一样。都是第一个元素的值。p[1] 和 *(p+1)就是第二个元素的值知道了这个差别。那你的问题应该很容易。你的程序太长没时间看。(看来你是做了功课的,不该批评你。呵呵)上面那个人答案有问题。他 用p[0]来放计算结果,把人家本来放字符串的地方给冲掉了一个位置。
void* pArray;
1. 不另申请变量,交换两个整型变量,要求两种方法。 x^=y;
y^=x;
x^=y;x+=y;
y=x-y;
x-=y;
2. 不另申请变量,统计指定字符串的长度。
数组那个不对,指针已经移位了,p[0]不是原数组头指针
3. 不用if、三目运算符以及其它条件判断语句,写一个求两个数中较大值的函数。
(a+b+fabs(a-b))/2