栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

UVa10082:WERTYU

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UVa10082:WERTYU

WERTYU - UVA 10082 - Virtual Judgehttps://vjudge.net/problem/UVA-10082两种方法,第一种紫皮书上的,第二种网上的,感觉网上的更简单

#include 
using namespace std;

char s[] = "`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";

int main () {
	int i, c;
	while ((c = getchar()) != EOF) {

		for (i = 1; s[i] && s[i] != c; i++); //检查字符在字符串s中是否存在,并定位他的位置

		if (s[i])//就是判断字符存不存在于字符串s里,不存在的话s[i]就为''即false
			//或者if(i<=strlen(s)-1)
			putchar(s[i - 1]);
		else//不存在直接输出
			putchar(c);
	}

}

s[i]是什么意思:
s是一个指针变量,如果你不了解什么是指针
他等价于一个数组
即char *s="1234567890-=qwertyuiop[]asdfghjkl;'\zxcvbnm,./";
等价于 char s[]="1234567890-=qwertyuiop[]asdfghjkl;'\zxcvbnm,./";
s[i]就相当于取数组里相对应的元素的值

有什么情况s[i]会出现false:
因为字符串以''(ascii是0,而0为false)结束,也就是说当a[i]==''就为false

#include 
#include 
using namespace std;

char s[] = "`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";

int main() {
	char c;
	while ((c = getchar()) != EOF) {
		if (c == ' ')
			printf(" ");
			
		else if (c == 'n')
			printf("n");
			
		else {
			for (int i = 0; i < strlen(s); i++)
				if (c == s[i]) {
					printf("%c", s[i - 1]);
					break;
				}
		}

	}
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/512590.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号