c语言将字符串abcde倒序输出(c语言实现字符串倒序输出)
用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; } }