【发布时间】:2017-04-16 13:11:29
【问题描述】:
这个程序的重点是反转一个字符串并将其打印出来。这是一项学校作业,我才刚刚开始。我需要反转给我的字符串(整个主函数是为赋值给出的),我需要使用 2 个指针作为 cstring 的开头和 cstring 的结尾。在代码中,我知道传递的 cstring 的开头只是“temp”,但我不知道如何找到 cstring 的结尾字母并为其分配一个指针。
主要功能交给我了:
#include <iostream>
#include "reverse.hpp"
using namespace std;
void reverse(char*);
int main()
{
// these are the test cases
char str1[] = "time";
char str2[] = "straw";
char str3[] = "deliver";
char str4[] = "star";
char str5[] = "knits";
cout << "The strings before reversing: " << endl;
cout << str1 << " " << str2 << " " << str3 << " " << str4 << " " << str5 << " " << endl;
reverse(str1);
reverse(str2);
reverse(str3);
reverse(str4);
reverse(str5);
cout << "The strings after reversing: " << endl;
cout << str1 << " " << str2 << " " << str3 << " " << str4 << " " << str5 << " " << endl;
return 0;
}
这里是反向函数:
#ifndef REVERSE_HPP
#define REVERSE_HPP
#include <string.h>
void reverse(char*temp)
{
// *temp would equal "t" in the first cstring
// (sizeof *temp - 1) would equal last character ???
}
#endif // REVERSE_HPP
这与发布的其他内容不同,因为我试图用指针获取长度
【问题讨论】:
-
尝试一些事情,打印结果,以便您了解发生了什么。你可以增加一个指针。试试看,通过打印出内容来查看它所指向的内容。实验。
-
这就是 strlen 的用途。 linux.die.net/man/3/strlen
-
char str1[] = "time";等价于char str1[5] = {'t', 'i', 'm', 'e', '\0'};