06-2. 字符串字母大小写转换(10)

    题目: 输入一个以#结束的字符串,本题要求将小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其它字符不变。
    输入格式:输入在一行中给出一个长度不超过40的、以#结束的非空字符串。
    输出格式:在一行中按照要求输出转换后的字符串。

    输入样例:
    Hello World! 123#
    输出样例:

    hELLO wORLD! 123

    本题我用以C语言链表来完成程序编写,下面是C程序

#include <stdio.h>
#include <stdlib.h>

typedef struct Node//链表节点的结构 
{
	char data;
	struct Node *next;
}List;

int main()
{
	List *l,*p,*q; 
	char c;
	scanf("%c",&c);
	q=(List*)malloc(sizeof(List));//为链表第一节点申请内存空间 
	q->data=c;                   // 为第一节点赋值 
	q->next=NULL;               //  初始化第一节点指针 
	l=p=q;                     //三个指针均指向链表的第一节点 
	while(q->data!='#')       //建个循环向链表读入后续字符 
	{
		scanf("%c",&c);
		q=(List*)malloc(sizeof(List));//建立一个新节点 q
		q->data=c;                   // 为新节点q赋值 
		q->next=NULL;               //  初始化新节点q的next指针 
		p->next=q;                 //将新节点p接入链表尾部 
		p=q;                      //p再指向链表尾节点 
	}
	p=l;                                //p指向链表的第一个节点 
	while(p->data!='#'&&p->next!=NULL) //建个循环,打印输出 
	{
		if(p->data>=65&&p->data<=90)        //如果值是小写字母,则改为大写 
			p->data=p->data+32;
		else if(p->data>=97&&p->data<=122)//如果值是大写字母,则改为小写 
			p->data=p->data-32;
		printf("%c",p->data);           //打印当前修改后的节点值 
		p=p->next;                     //p指向链表的后一个节点 
	}
	return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值