c语言将字符串abcde倒序输出(c语言实现字符串倒序输出)

http://www.itjxue.com  2023-01-28 16:02  来源:未知  点击次数: 

用C语言写一个函数,使输入的字符串按反序存放,在主函数中输入和输出字符串。

#include stdio.h

#include string.h

int main()

{void inverse(char str[]);

char str[100];

printf("input string:");

scanf("%s",str);

inverse(str);

printf("inverse string:%s\n",str);

return 0;

}

void inverse(char str[])

{char t;

int i,j;

for (i=0,j=strlen(str);i(strlen(str)/2);i++,j--)

{t=str[i];

str[i]=str[j-1];

str[j-1]=t;

}

}

文件1:

#include?stdio.h

#define?N?6

//static?char?str[N];?这个没必要

int?f?(char);????????//声明flashback函数.?//?声明放外面,好的习惯

int?main()

{

char?str[N]?=?"abcde";

printf("原字符串:\n");

puts?(str);

f?(str[N]);????????????//调用flashback函数.

printf("倒序后的字符串:\n");

puts?(str);

printf("\n");

}

文件2:

//#define?N?6

//extern?char?str[N];?//也没必要

int?f?(char?str2[N])?//你这个N没什麽用

{

int?i,t;

for?(i=0;i=N-1;i++)

{

t?=?str2[i];

str2[i]?=?str2[N-i];

t?=?str2[N-i];

}

return?(str2[N]);

}

参考#3

char*?reserve(char*?src)

{

int?j?=?strlen(src)-1;

for?(?int?i=0?;ij;++i,--j?)

{

char?temp?=?src[j];

src[j]?=?src[i];

src[i]?=?temp;

}

return?src;

}

在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后主函数输出10个已经排好的字符串

c语言字符串逆序输出。

#include?stdio.h

#include?string.h

int?main()

{

int?i;

int?str_len;

char?str[81];

gets(str);

str_len?=?strlen(str);??

//str_len-1就是最后一个元素的下标?不理解的话可以想想??"abc"?长度3?最后c的下标是2?理解了吧

//然后一直自减到i=0?也就是第一个字符?那么下面的for循环的意思就是

//从最后一个字符逐个倒着输出这个字符串的元素

for(i?=?str_len-1;?i?=?0;?i--)??

{

printf("%c",?str[i]);

}

return?0;

}

c语言 倒序输出字符串

您好,一个汉字占用两个字节(扩展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 = 0; i = 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;

}

用c语言倒序输出字符串

思路:

用一个足够长的字符数组来接受用户的输入,然后从最后数组最后一个位置开始输出字符。

代码如下:

#include?stdio.h

#include?string.h

#define?BUFFER?1024?/*定义常量BUFFER,值为1024,作数组长度*/

int?main(void)

{

int?i;

char?a[buffer];

gets(a);?/*将用户的输入存进字符数组*/

for(i=strlen(a)-1;i=0;i--)?/*从数组的最后位置开始输出字符*/

printf("%c",a[i]);?/*以字符的格式依次显示每个字符*/

printf("\n");

return?0;

}

程序运行截图如下:

字符串倒序输出 怎么实现

什么语言?

下面的是C语言的实现:

#include?stdio.h

#include?string.h

void?StringReverse(char?*str)

{

????if(NULL?==?str)

????{

????????return?;

????}

????char?*pBegin?=?str;

????char?*pEnd???=?str?+?strlen(str)?-?1;

????

????while(pBegin??pEnd)

????{

????????char?tmp?=?*pBegin;

????????*pBegin?=?*pEnd;

????????*pEnd?=?tmp;

????????

????????pBegin?++,?pEnd?--;

????}

}

int?main()

{

????char?str[]?=?"123456789";

????

????StringReverse(str);

????

????printf("%s\n",str);

}

Java实现

/*

?*?字符串abcdefg,要求按逆序输出为gfedcba

?*/

public?class?ReverseSort?{

public?static?String?reverseSort(String?str)?{

String?str2?=?"";

for?(int?i?=?str.length()?-?1;?i??-1;?i--)?{

str2?+=?String.valueOf(str.charAt(i));

}

return?str2;

}

public?static?void?main(String[]?args)?{

String?str?=?"abcdefg";

String?sortedStr?=?reverseSort(str);

System.out.println(sortedStr);

}

}

编写一个程序将键盘输入的一个字符串逆转,例如,输入abcde,输出edcba.

char* str_nz (char *s) { int i = 0, j = strlen(s) - 1; char temp; for(;;) { temp = s[i]; s[i] = s[j]; s[j] = temp; if(i = j) return s; } }

(责任编辑:IT教学网)

更多