作业-逆序和定位

目录

字符串逆序

题目描述

输入

输出

样例

解题思路:

单词倒排

题目描述

输入

输出

样例

解题思路:

首字母大写

题目描述

输入

输出

样例

解题思路:

统计句子中单词个数

题目描述

输入

输出

样例

解题思路:

大小写字母互换

题目描述

输入

输出

样例

解题思路:


字符串逆序

题目描述

随机输入一个长度不超过255的字符串,将其倒置后输出。

输入

只有一行。(测试数据不含空格)

输出

只有一行,输出倒置后的字符串。

样例

输入复制

asdfghjkl123456

输出复制

654321lkjhgfdsa

解题思路:

循环数组一半,对称位置交换

cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	char a[100];
	cin.getline(a,100);
	int len = strlen(a);
	for(int i = 0;i<len/2;i++)
	{
		char tmp = a[i];
		a[i]  = a[len-1-i];
		a[len-1-i] = tmp;
	}
	cout<<a;
	return 0;
}

单词倒排

题目描述

编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。

输入

输入为一个字符串(字符串长度至多为100)。

输出

输出为按要求排序后的字符串。

样例

输入复制

I am a atudent

输出复制

atudent a am I

解题思路:

双指针向前扫描,遇到空格输出

cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	char a[100];
	cin.getline(a,100);
	int len = strlen(a);
	int p = len-1;
	for(int i = len-1;i>=0;i--)
	{
		if(a[i] == ' ')
		{
			for(int j = i+1;i<p;i++)
			{
				cout<<a[j];
			}
			cout<<" ";
			p = i-1;
		}
		if(i == 0)
		{
			for(int j = 0;j<=p;j++)
			{
				cout<<a[j];
			}
		}
	}


	return 0;
}

首字母大写

题目描述

编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的首字母大写,依然以单个空格分隔。

输入

输入为一个字符串(字符串长度至多为100)。

输出

输出为按要求排序后的字符串。

样例

输入复制

this is test code.

输出复制

This Is Test Code.

解题思路:

1、首字母大写2、前一个字符如果是空格也大写

cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	char a[100];
	cin.getline(a,100);
	int len = strlen(a);
	for(int i = 0;i<len;i++)
	{
		if(a[i] == ' ')
		{
			a[i+1] = a[i+1] - 32;
		}
	}
	cout<<a;
	return 0;
}

统计句子中单词个数

题目描述

编写程序,读入一行英文(只包含字母和空格,单词间以单个或多个空格分隔),统计句子中单词的个数

输入

输入为一个字符串(字符串长度至多为100)。

输出

输出单词个数。

样例

输入复制

this is a test code.

输出复制

5

解题思路:

1、非空格的后一位是空格或者\0,统计数+1

cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	char a[100];
	cin.getline(a,100);
	int len = strlen(a);
	int cnt = 0;
	for(int i = 0;i<len;i++)
	{
		if(a[i] == ' ')
		{
			cnt++;
		}
	}
	cout<<cnt;
	return 0;
}

大小写字母互换

题目描述

把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母。

输入

输入一行:待互换的字符串。

输出

输出一行:完成互换的字符串(字符串长度小于80)。

样例

输入复制

i love c++

输出复制

I LOVE C++

解题思路:

用ASCII码

cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	char a[100];
	cin.getline(a,100);
	int len = strlen(a);
	for(int i = 0;i<len;i++)
	{
		a[i] = a[i] - 32;
	}
	cout<<a;
	return 0;
}
相关推荐
MC皮蛋侠客5 小时前
TDengine C++ 系列(5):C/C++ 连接器——连接管理与查询 API
c语言·c++·tdengine
MC皮蛋侠客5 小时前
TDengine C++ 系列(8):流式计算与最新值缓存——库内实时处理
c++·缓存·tdengine
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧14 小时前
C++学习:基础知识的掌握
c++·visualstudio
C++ 老炮儿的技术栈19 小时前
从 Qt Designer 属性编辑器的层级可以看到继承链
c语言·数据库·c++·qt·sqlite·visual studio
new_zhou20 小时前
C++ 项目 AI 协作指南(Windows / MSVC 环境)
c++·人工智能·windows
水饺编程21 小时前
AT&T 汇编语言学习笔记开篇语
c语言·汇编·c++
Iruoyaoxh21 小时前
类和对象~
开发语言·c++
程序喵大人1 天前
【C++进阶】STL算法与函数对象 - 04 find、count和any_of把查询写成意图
开发语言·c++·算法
豆沙沙包?1 天前
c++中引用(P7-P11)
java·c++·算法
wuminyu1 天前
虚拟线程底层ForkJoinPool的工作窃取算法机制
java·linux·c语言·jvm·c++