C语言怎么用函数把一个字符串逆序存放,比如说原字符串是abc...2
发布网友
发布时间:2023-10-30 05:03
我来回答
共5个回答
热心网友
时间:2024-09-01 13:23
我以前写了这个程序。略粗糙
源代码:
#include <stdio.h>
#include <string.h>
#define ARR_SIZE 80 //字符串最大长度
int Inverse(char a[]);
void main(void)
{
char str[ARR_SIZE]={0};
printf("P199 6.12\n"); //题号
printf("---------------------Inversed sequence---------------------\n");
printf("\nPlease enter a charstring:\n\n");
gets(str); //输入一个字符串
Inverse(str); //调用函数逆序存放
}
int Inverse(char a[])
{
char b[ARR_SIZE]={0};
int i;
int maxsize;
maxsize=strlen(a)-1; //得到最后一个字符位置
for (i=0;i<strlen(a);i++) //依次交换存放
{
b[maxsize]=a[i];
maxsize--;
}
printf("\nThe changed result is:\n\n");
puts(b); //输出交换存放结果
printf("\n");
}
热心网友
时间:2024-09-01 13:18
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
void main(void){
char str[]="abcd";
printf("%s\n",str);
printf("%s\n",strrev(str));
}
热心网友
时间:2024-09-01 13:17
栈 递归 输入缓存 都可以
热心网友
时间:2024-09-01 13:16
void reverse(char str[])
{
int len = strlen(str), i, temp;
for(i = 0; i < (len >> 1); i++)
{
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
热心网友
时间:2024-09-01 13:22
貌似没有现成的函数,只能自己写一个了,很简单:
char *inverse(char * s)
{
int n = strlen(s);
char *p = s, *q = s+n-1, temp;
while (p <= q)
{
temp = *p;
*p = *q;
*q = temp;
++p;
--q;
}
return s;
}