【2023.10.27练习】C语言-字符串转换

计算机能力挑战初赛2020.17题

题目描述:

有一组均由字符A~Z和a~z组成的字符串,其中要求将字符串中各字符按如下要求进行转换:

A<->z、B<->y、C<->x、...... 、X<->c、Y<->b、Z<->a

输入: 第一行输入字符串(长度<=10000)

输出: 输出转换之后的字符串。

样例输入: Algorithm

样例输出: zOTLIRGSN

样例输入: Hello

样例输出: sVOOL


题目分析:

显然将输入的字符转化为ASCII码

根据观察得出输入的字符ASCII码 = **187 -**输出的字符ASCII码。

cpp 复制代码
int main(void) {
	char str_1[5000];/*str_1表示输入的字符串*/
	scanf("%s", str_1);/*输入字符串*/

	char str_2[5000];
	/*for (int i = 0; p != 0; i++) {
		str_2[i] = 187 - str_1[i];
		p++;
		};*/

	for (int i = 0; i <= strlen(str_1); i++) {
		if (i < strlen(str_1)) {
			str_2[i] = 187 - str_1[i];
		}
		else {
			str_2[i] = 0;
		}
	}
	printf("%s", str_2);
	return 0;
}

但是还不够,定义的字符串长度是有限的,使用动态顺序表让输入可以无限长。


最终代码:

cpp 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) {

	/*str_1表示输入的字符串*/
	char* str_1 = NULL;
	int capacity = 5;
	int size = 0;
	str_1 = (char*)malloc(capacity * sizeof(char));

	int flag = 0;
	for(int i = 0;flag == 0;i++){
		if (size == capacity) {
			int newcapacity = capacity * 2;
			char * str = (char*)realloc(str_1,newcapacity * sizeof(char));
			str_1 = str;
			capacity = newcapacity;
		}

		str_1[i] = getchar();/*输入字符串*/
		size++;
		if (str_1[i] == '\n') {
			flag = 1;
			str_1[i] = 0;/*str_1由字符数组转为字符串*/
		}
	}

	char* str_2 = NULL;
	str_2 = (char*)malloc(size * sizeof(char));

	for (int i = 0; i <= strlen(str_1); i++) {
		if (i < strlen(str_1)) {
			str_2[i] = 187 - str_1[i];
		}
		else {
			str_2[i] = 0;
		}
	}
	printf("%s", str_2);

	free(str_1);
	str_1 = NULL;
	free(str_2);
	str_2 = NULL;

	return 0;
}
相关推荐
spcier5 小时前
图论拓扑排序-Kahn 算法
算法·图论
知星小度S5 小时前
动态规划(一)——思想入门
算法·动态规划
ysa0510305 小时前
动态规划-逆向
c++·笔记·算法
燃于AC之乐5 小时前
我的算法修炼之路--7—— 手撕多重背包、贪心+差分,DFS,从数学建模到路径DP
c++·算法·数学建模·深度优先·动态规划(多重背包)·贪心 + 差分
海上Bruce5 小时前
C primer plus (第六版)第十二章 编程练习第3题
c语言
Whisper_Sy5 小时前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 网络状态实现
android·java·开发语言·javascript·网络·flutter·php
chinesegf5 小时前
文本嵌入模型的比较(一)
人工智能·算法·机器学习
SundayBear6 小时前
零基础入门MQTT协议
c语言·单片机
Bony-6 小时前
Go语言垃圾回收机制详解与图解
开发语言·后端·golang
hmywillstronger6 小时前
【Rhino】【Python】 查询指定字段并cloud标注
开发语言·python