题目: 输入一个以#结束的字符串,本题要求将小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其它字符不变。
输入格式:输入在一行中给出一个长度不超过40的、以#结束的非空字符串。
输出格式:在一行中按照要求输出转换后的字符串。
输入样例:
Hello World! 123#
输出样例:
输入格式:输入在一行中给出一个长度不超过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;
}