编写并测试您自己的函数char*funct(char*str,int x),反转字符串str(位置n的字符除外),并返回修改后的str作为结果。函数funct的用途可以是:
这是主要的:
#include <iostream>
#include <cstring>
using namespace std;
char* funct(char *str, int x);
int main() {
char str1 [] = "Hello cpp";
cout << str1 << endl; // Hello cpp
cout << funct (str, 1) << endl; // pepC ollH // the character at position 1 ('e') stays in place
return 0;
}
char* funct(char *str, int x) {
int counter = 0;
do {
counter++;
str++;
} while (*str);
str--;
char *wskTmp = str;
for (int i = 0; i < counter ; i++) {
*wskTmp = *str;
str--;
wskTmp++;
}
*wskTmp = '\0';
wskTmp = wskTmp - counter;
for (int i = 0; i < counter - x -1; i++) {
wskTmp++;
}
char tmp;
for (int i = 0; i < counter-3; i++) {
tmp = *(wskTmp - 1);
*(wskTmp - 1) = *wskTmp;
*wskTmp = tmp;
wskTmp--;
}
return str;
}
你好CppepC ollH
应该是:
你好Cpp
您的代码非常混乱,而且是完成这项任务的一种非常迂回的方式,所以我对它进行了一些重组:
#include <cstring>
#include <iostream>
using namespace std;
char *funct(char *str, int x) {
// keep track of the original start
char *origStr = str;
// iterate through the string to find the end
do {
str++;
} while (*str);
// decrease the string so it's on the last byte, not the nullbyte
str--;
// create a start and end
char *start = origStr;
char *end = str;
if (start - origStr == x) {
start ++;
}
if (end - origStr == x) {
end--;
}
// if start >= end then we've finished
while (start < end) {
// swap values at start and end
char temp = *start;
*start = *end;
*end = temp;
// move the pointers closer to each other
start++;
end--;
// skip the index x
if (start - origStr == x) {
start++;
}
// skip the index x
if (end - origStr == x) {
end--;
}
}
// make sure to return the actual start
return origStr;
}
int main() {
char str1[] = "Hello cpp";
cout << str1 << endl; // Hello cpp
cout << funct(str1, 1) << endl; // pepC ollH // the character at position 1
// ('e') stays in place
return 0;
}
在这里,我使用了一个点切割注释,如下所示: 它给了我一个例外,那就是: 我刚刚开始学习AOP。任何建议或帮助都会有很大帮助。谢谢。
我正在检查Angular Bootstrap UI,特别是服务并注意到一件有趣的事情。 在他们的示例中,'http://plnkr.co/edit/e5xykpqwytsljua6fxwt?p=preview',在附加到弹出窗口的控制器中,他们将选定的项包含到另一个内部属性中 为什么需要这个?JavaScript找到了什么? THX
抱歉,如果不允许这样做。这是我第一次问问题。无论如何,我应该实现一个程序,根据文本读取等级。 “实施一个程序,根据以下内容计算理解某些文本所需的大致年级水平。文本:恭喜!今天是你的一天。你要去很棒的地方!你走了,走了!3 年级 在完成代码之后。每次我编译它时,它都会给我一个异常,即我除以零。几乎就像在我要求用户输入文本后,它根本不被读取,字母计数保持在零。我不知道如何绕过它。下面是我导入java.
问题是 有一个输入字符串集合和一个查询字符串集合。对于每个查询字符串,确定它在输入字符串列表中出现的次数。 字符串=[ab,ab,abc]查询=[ab,abc,bc]有ab的实例2,'abc'的实例1和'bc'的实例0。对于每个查询,添加一个元素。 现在我尝试使用链表实现它,但不是以2,1,0的形式获得输出。我得到的输出是2,1,0,2,2,1,0,2。我不知道是如何为超过3个链接创建LL的。请帮
问题内容: 我有这个web.xml 突出显示,IDE给出的错误是:“发现无效的内容,从element开始… 我还需要做什么? 问题答案: 使用以下表示法: 但我建议阅读此链接。本教程将使您了解在JSP 2.0的情况下如何避免在web.xml中声明标签库。
MongoDB shell v3.4.1连接到:MongoDB://127.0.0.1:27017 2017-12-06T12:16:58.540+0530 W网络[main]连接到127.0.0.1:27017失败,在(轮询后检查套接字错误),原因:连接拒绝2017-12-06T12:16:58.540+0530 E查询[main]错误:无法连接到服务器127.0.0.1:27017,连接尝试失