linux *** 作系统shell脚本,检查出给出的串是否为回文

linux  *** 作系统shell脚本,检查出给出的串是否为回文,第1张

#!/bin/bash

s=`echo -n $1 | wc -c` 

n=$((($s)/2))

i=1

while [ $i -le $n ] 

do

    c1=`echo -n $1 | cut -c $i`

    c2=`echo -n $1 | cut -c $s`

    if test $c1 != $c2

    then

        echo "不是回文"

        break

    fi

    i=$(($i+1))

    s=$(($s-1))

done

if test $c1 = $c2

then

    echo "是回文"   

fi

运行: shell.sh string

#include <stdlib.h>

int atoi(const char *nptr)

long atol(const char *nptr)

long long atoll(const char *nptr)

long long atoq(const char *nptr)

linux下面没对应的好像,我man 没有查到.

给你直接找到一个实现,你放到自己代码里面就可以了

void itoa ( unsigned long val, char *buf, unsigned radix )

{

char *p/* pointer to traverse string */

char *firstdig /* pointer to first digit */

char temp/* temp char */

unsigned digval/* value of digit */

p = buf

firstdig = p /* save pointer to first digit */

do {

digval = (unsigned) (val % radix)

val /= radix /* get next digit */

/* convert to ascii and store */

if (digval > 9)

*p++ = (char ) (digval - 10 + 'a ')/* a letter */

else

*p++ = (char ) (digval + '0 ') /* a digit */

} while (val > 0)

/* We now have the digit of the number in the buffer, but in reverse

order. Thus we reverse them now. */

*p-- = '\0 '/* terminate string p points to last digit */

do {

temp = *p

*p = *firstdig

*firstdig = temp /* swap *p and *firstdig */

--p

++firstdig /* advance to next two digits */

} while (firstdig < p) /* repeat until halfway */

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7321910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存