这两个程序的代码,就把两个代码都写完就可以了 有会的帮帮忙吧soxjenjzjdekksjdnekwksdkew
第一题
#include <iostream>
#include <cstring>
void movestr(char* str, int n) {
int len = strlen(str);
char* temp = new char[len + 1];
// 保存前n个字符
strncpy(temp, str, n);
temp[n] = '\0';
// 将后N-n个字符移到前面
memmove(str, str + n, len - n);
// 将保存的前n个字符移到后面
strcpy(str + len - n, temp);
delete[] temp;
}
int main() {
char str[100];
int n;
std::cout << "请输入字符串: ";
std::cin >> str;
std::cout << "请输入数值: ";
std::cin >> n;
movestr(str, n);
std::cout << "前后交换后的字符串: " << str << std::endl;
return 0;
}
第二题
#include <iostream>
#include <cstring>
bool EqualReverse(const char* str) {
int len = strlen(str);
const char* start = str;
const char* end = str + len - 1;
while (start < end) {
if (*start != *end) {
return false;
}
start++;
end--;
}
return true;
}
int main() {
char str[100];
std::cout << "请输入字符串: ";
std::cin >> str;
if (EqualReverse(str)) {
std::cout << "该字符串为回文串" << std::endl;
} else {
std::cout << "该字符串不是回文串" << std::endl;
}
return 0;
}