/***************************************
使用指针技术实现内存块数据的移动:要求从键盘输入一个字符存放到某个内存空间中,然后把输入的字符串
最后一个字符调整到字符首部,其他字符以此向后移输出。比如输入“asdfgh”,输出"hasdfg"
实现方法:
(1)定义指针,分配内存空间
(2)输出字符串到指定的空间
(3)处理字符串
(4)输出字符串
(5)释放分配的内存空间
****************************************/
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char tmp;
int n;
char *p = new char[20];
if(NULL == p)
{
cout << "new memory is not ok" << endl;
}
cout << "please input string: " <<endl;
cin >>p;
n = strlen(p);
cout << "strlen(p): " << n <<endl;
for(int i = n-1;i >= 0;i--)
{
*(p+i+1) = *(p+i);
if(i == 0)
{
*(p+i) = *(p+n);
*(p+n) = '\0';
}
}
cout << "string: " << p << endl;
if(p != NULL)
{
delete [] p;
}
return 0;
使用指针技术实现内存块数据的移动:要求从键盘输入一个字符存放到某个内存空间中,然后把输入的字符串
最后一个字符调整到字符首部,其他字符以此向后移输出。比如输入“asdfgh”,输出"hasdfg"
实现方法:
(1)定义指针,分配内存空间
(2)输出字符串到指定的空间
(3)处理字符串
(4)输出字符串
(5)释放分配的内存空间
****************************************/
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char tmp;
int n;
char *p = new char[20];
if(NULL == p)
{
cout << "new memory is not ok" << endl;
}
cout << "please input string: " <<endl;
cin >>p;
n = strlen(p);
cout << "strlen(p): " << n <<endl;
for(int i = n-1;i >= 0;i--)
{
*(p+i+1) = *(p+i);
if(i == 0)
{
*(p+i) = *(p+n);
*(p+n) = '\0';
}
}
cout << "string: " << p << endl;
if(p != NULL)
{
delete [] p;
}
return 0;
}
输出:
please input string:
asdfgh
strlen(p): 6
string: hasdfg