c语言,字符串、返回值、换成大写.

Description
输入一些字符串,把其中的小写字母转换成大写字母。


编写函数str_upr():

 原型:char* str_upr(char *s);

 功能:把字符串s中的小写字母变成大写,其余字符不变。

函数的调用格式见“Append Code”。


Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下列的关键词之一,就会产生这个错误。

被禁用的头文件:string.h。

Input
输入为多行。每行为一个字符串str。str的字符总数不超过1000个。

Output
输出小写转大写后的串str。输出两遍,一遍是测试返回值,一遍是测试str。

Sample Input
I love China!
Do you want to pass this examination?
You will succeed finially!
Wish you succeed!
Sample Output
I LOVE CHINA!
I LOVE CHINA!
DO YOU WANT TO PASS THIS EXAMINATION?
DO YOU WANT TO PASS THIS EXAMINATION?
YOU WILL SUCCEED FINIALLY!
YOU WILL SUCCEED FINIALLY!
WISH YOU SUCCEED!
WISH YOU SUCCEED!

输出两编是因为main函数里puts了一个p

main函数如下:
int main()
{
char str[MAX_STR_LEN], *p;
while(gets(str) != NULL)
{
p = str_upr(str);
puts§;
puts(str);
}
}

c里面没有string,只好靠字符数组,puts,gets就是for循环+字符数组的形式,直接读取,输出的(略作补充):

我的答案:

bug点:
1#define xxx 1000//不要再在后面加—;了
2直接return str不成功,需要在函数前加*才能return str,下次遇到c的字符串问题就清楚了…

#include<stdio.h> 
//#define MAX_STR_LEN 1000;//这是;真的迷
//#define MAX_STR_LEN 1000 
#define MAX_STR_LEN 1100
char *str_upr(char str[])
{
	int a;
	for(int i=0;str[i]!=NULL;i++){
		a=str[i];
		if(a>=97){
			a=a-32;
			str[i]=a;
		}
	}
	return str;//这个题如果不知道要加*在函数前面str这个根本没法返回!! 
}
int main()
{
    char str[MAX_STR_LEN], *p;
    while(gets(str) != NULL)
    {
        p = str_upr(str);
        puts(p);
        puts(str);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不惭_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值