c语言 倒序输出字符串

Python017

c语言 倒序输出字符串,第1张

您好,一个汉字占用两个字节(扩展ASCII码),而getchar()每次只能读入一个字节,因此读入汉字时,则需要用gets()函数。

倒叙输出汉字串时,有两种方法,一是从字符串末端开始,每次输出两个字节,二是直接汉字将字符串在数组中倒置,然后再用puts()函数直接输出。

以上两种方法都有局限性,一旦含有非汉字字符,极有有可能造成乱码。

#include <stdio.h>

#include <string.h>

unsigned char *InverseStr(unsigned char t[],unsigned char s[]) {

int i,j,len = strlen((char *)s)

for(i = len - 1,j = 0i >= 0--i,++j) {

if(s[i] >0X7F) { // 是汉字

t[j++] = s[i - 1]

t[j] = s[i]

--i

}

else t[j] = s[i]

}

t[j] = '\0'

return t

}

int main() {

unsigned char s[] = "C语言char数据类型练习"

unsigned char t[25]

printf("s = \"%s\"\n",s)

printf("t = \"%s\"\n",InverseStr(t,s))

return 0

}

#include <stdio.h>

int main()

{

int n,i,ret=0

scanf("%d",&n)

while(n>0){

i=n%10

ret=ret*10+i

n /=10

}

printf("%d",ret)

return 0

}

扩展资料:

起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。

这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。

K&R C主要介绍了以下特色:

结构体(struct)类型

长整数(long int)类型

无符号整数(unsigned int)类型

把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =- 10,使得处理上产生混淆。

即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最 准要求,许多老旧的编译器仍然运行K&R C的标准。

参考资料:百度百科-c语言

最简单的反序输出,就是把数组反序输出。只需要从最大下标开始,向0下标循环输出就可以了。

比如将字符串(字符数组)反序输出的代码如下:

void reverse_output_str(char *str)

{

    int len = strlen(str) -1//得到最大下标

    

    while(len >= 0)printf("%c", str[len--]) //反序输出直到str[0]

}

其它类的反序输出,也都可以归结为类似的情况。先把要输出的正序输出到一个数组,然后把这个数组反序输出。

比如把一个10进制数反序输出,即输入1234,输出4321,就可以采用类似的方式:

void reverse_int_output(int a)

{

    char buf[20]

    sprintf(buf, "%d", a)//将a转为字符串

    reverse_output_str(buf)//调用刚才的函数反序输出。

}