【code】字符串反转

字符串反转

#include<stdio.h>
#include<cstring>
void reverse(const char* str);
int main() {
	// 处理输入的字符串
	char str[100];
	while (scanf_s("%s", str, 100) != EOF) {
		reverse(str);
	}
	return 0;
}

/*
 * Function:给定一个字符串,将其逆序输出
 * Input:无空格字符串
 * Return:逆序字符串
 */
void reverse(const char *str) {
	for (int i = strlen(str) - 1; i >= 0; i--) {
		putchar(str[i]);
	}
	putchar(' ');
}


前后调换子字符串位置

#include<iostream>
#include<string>
using namespace std;
string reverse_size(string str, int size);
int main() {
	// 处理输入的字符串
	string str;
	int size;
	while (cin >> size >> str) {
		cout << reverse_size(str, size) << endl;
	}
	return 0;
}

/*
 * Function:给一个字符类型的数组str和一个整数size,请把大小为size的左半区整体右移到右半区,右半区整体移动到左边
 * Input:字符串
 * Return:移动后的字符串
 */
string reverse_size(string str, int size) {
	char* temp = (char*)malloc(size * sizeof(char));
	int len = str.size();
	// 备份左边的字符串
	for (int i = 0; i < size; i++) {
		temp[i] = str[i];
	}
	// 右边字符串左移 
	for (int j = size, i = 0; j < len;i++,j++) {
		str[i] = str[j];
	}
	// 还原右边最后size个字符串
	for (int i = 0; i < size; i++) {
		str[len - (size - i)] = temp[i];
	}
	return str;
}

该题只让输出,并不需要返回这么一个真实的调换位置的字符串,可以先输出后半部分子串,再输出前半部分子串

#include<iostream>
#include<string>
using namespace std;
int main() {
	// 处理输入的字符串
	string str;
	int size;
	while (cin >> str >> size) {
		cout << str.substr(size) + str.substr(0, size) << endl;
	}
	return 0;
}


发布了46 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zzy296753977/article/details/101483982