linux 字符串转大写字母,用shell脚本和c语言将大写字母转成小写的代码

#!/bin/bash

#name: upper_to_lower.sh

#the function is trun uper to lower

#like ABCd to abcd

haveuppernumber()

{

#test if the string have upper number

str="$(echo $1 | tr '[:upper:]' '[:lower:]')"

if [ "$str" != $1 ] ; then #get some problem

echo "[#have upper number,and i well trun them to lower:#]"

return 1 #have upper number

else

return 0 #no upper number

fi

}

if [ $# -ne 1 ] ; then

echo "Usage: $0 " >&2

exit 1

fi

if ! haveuppernumber $1 ; then #when if is 0 it run?

#if [ 0 ] ; then #in shell true return 0 ,false return 1

echo $1 | tr '[:upper:]' '[:lower:]' #it can turn the UPPER number to lower

#    echo $1 | tr '[:lower:]' '[:upper:]' #it can turn the lower number to UPPER

else

echo "[#no upper number:#]"

echo $1

fi

exit 0

功能说明:当输入”./upper_to_lower.sh AaBbCcdd“时会先判断输入格式是否正确,然后判断字符串中是否有大写字母如果有显示"[#have upper number,and i well trun them to lower:#]"和转换成小写字母后的字符串;如果没有大写字母显示"[#no upper number:#]"和小写字符串。

08476b1b0bf0602a3afc414e8befad1a.gif

然后又试着用c语言实现相同的功能,如下:

#include

#include

int haveuppernumber(char *p)

{

char*q=p;

for(;*q!='\0';q++)

{

if(*q>='A'&&*q<='Z')

{

printf("[#have upper number and i will turn them to lower #]\n");

return 1;

}

}

printf("[#no upper number#]\n");

return 0;

}

void turntolower(char *p)

{

for(;*p != '\0';p++)

{

if(*p>='A' && *p<='Z')

{

*p+=' ';

}

}

}

int main(int argc , char *argv[])

{

char *p;

p=argv[1];

if(argc != 2)

{

printf("Usage : %s \n",argv[0]);

exit(-1);

}

if(haveuppernumber(p))

{

turntolower(p);

printf("%s\n",argv[1]);

}

else

{

printf("%s\n",argv[1]);

}

return 0;

}

c4475963aea03e73804c8e8517d63409.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值