14、 编写一个函数reverse(s)将字符串s中的字符位置颠倒过来.例如,字符串abcdefg中的字符位置颠倒后变为gfedcba.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 13:15:59
14、 编写一个函数reverse(s)将字符串s中的字符位置颠倒过来.例如,字符串abcdefg中的字符位置颠倒后变为gfedcba.
14、 编写一个函数reverse(s)将字符串s中的字符位置颠倒过来.例如,字符串abcdefg中的字符位置颠倒后变为gfedcba.
14、 编写一个函数reverse(s)将字符串s中的字符位置颠倒过来.例如,字符串abcdefg中的字符位置颠倒后变为gfedcba.
Dev-C++ 4.9.9编译通过了,= =,不知道是不是要这样的……随意写的,见谅
额,最下面的测试代码 运行错误…… 思路就这样了……
后面,错误大致调试了一下,在下面,当然,这个函数有待改进……
话说,这DevC++还真不好用,单说这调试……唉,VC实在是太肥了……
void Reverse(char *str)
{
if (NULL == str)
{
return ;
}
int iLen = 0; // length of the C-style string
int iTemp;
char cTemp;
// the string will terminated with char '\0'
while (str[iLen++] != '\0'); // get the length of the C string
for (int t=0; t<(iLen/2); ++t)
{
// swap the char(front and last)
iTemp = iLen - t - 2;
cTemp = str[t];
str[t] = str[iTemp];
str[iTemp] = cTemp;
} // end for
} // end Reverse
这是我写的测试的源文件代码,错误在于传递时的参数……
// main.cpp
#include <cstdlib>
#include <iostream>
using namespace std;
#ifndef NULL
#define NULL 0
#endif // NULL
void Reverse(char *str);
int main(int argc, char *argv[])
{
// 这是原来的定义,是字符指针,而非数组!注意!
// char *szTest = "ok,this is a test!"; // 错误在于这里!
char szTest[] = "ok,this is a test!"; // 这样可以得到想要的结果了,RT
cout << szTest << endl;
Reverse(szTest);
cout << "Reversed:\n";
cout << szTest << endl;
system("PAUSE");
return EXIT_SUCCESS;
} // main
void Reverse(char *str)
{
if (NULL == str)
{
return ;
}
int iLen = 0; // length of the C-style string
int iTemp;
char cTemp;
// the string will terminated with char '\0'
while (str[iLen++] != '\0'); // get the length of the C string
for (int t=0; t<(iLen/2); ++t)
{
// swap the char(front and last)
iTemp = iLen - t - 2;
cTemp = str[t];
str[t] = str[iTemp];
str[iTemp] = cTemp;
} // end for
}