C语言 写一个函数使输入的一个字符串按反序存放

作者&投稿:答莉 (若有异议请与网页底部的电邮联系)
C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符~

#include
#include
void input(char st[]);//定义输入函数
void reverse(char st[]);//定义反序函数
int main()
{
char s[20];
input(s);//调用输入函数
printf("Original string: %s
", s);//输出原字符串
reverse(s);//调用反序函数
printf("New string: %s
", s);//输出反序后的字符串
return 0;
}
void input(char st[])
{
printf("Please enter string: ");
gets(st);
}
//反序函数
void reverse(char st[])
{
int n=strlen(st);
for (int i=0, j=n-1, t; i<(n/2); t=st[i], st[i]=st[j], st[j]=t, i++, j--);
}

扩展资料:gets()用法:
1、gets() 函数是从键盘输入字符串,该函数只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。打开编辑器,新建一个c语言文件,引入标准库并新建主函数:

2、gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间,这里的程序是用gets函数输入字符串,可以看到不像scanf那样需要使用%号,gets函数中直接传入字符串即可:

3、最后运行下程序,输入“i love you”,可以看到gets函数可以直接输出空格,而scanf函数输出空格则需要使用转义字符实现,因此gets函数的使用要比scanf简洁的多。以上就是gets函数使用方法的演示:

可以使用string.h标准函数吗?
可以的话 这样做
#include #include void Reverse_string(char *str){int len = strlen(str), i;char t;for(i = 0; i <= len / 2; i ++){t = str[i];str[i] = str[len - i - 1];str[len - i - 1] = t;}}int main(){char buffer[100];gets(buffer);Reverse_string(buffer);printf("%s
", buffer);return 0;}

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

可以设置一个中间值,让两端的字符相交换,然后前头的向后移动一位,后头的向前移动一位。当前头的变量大于中间值时。程序停止执行。根据此原理编写代码如下:

#include&lt;stdio.h&gt;

#define N 100

void inverse(char[]);

int main(int argc,int*argv[])

{

int i=0;

char c,a[N];

printf("input a string:");

gets(a);

puts(a);

inverse(a);//进行字符翻转

puts(a);

system("pause");

return 0;

}

void inverse(char str[])

{

int i;

char c;

int begin=0,end=strlen(str)-1,mid=end/2;

do

{

c=str[end];

str[end--]=str[begin];

str[begin++]=c;

}while(begin&lt;mid);

}

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include&lt;文件名&gt;

2、#include"文件名"

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include&lt;math.h&gt;//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:

#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏

你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。

【例1】在#include命令中的宏

#ifdef _DEBUG_

#define MY_HEADER"myProject_dbg.h"

#else

#define MY_HEADER"myProject.h"

#endif

#include MY_HEADER

当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。



反序字符串只要头尾字符交换位置即可。

#include <stdio.h>
#include <string.h>

// 反序字符串x并返回
char* reverse(char *x)
{
    int len = strlen(x);
    int i, n = len / 2;
    char tem;
    for (i = 0; i <= n; i++)
    {
        tem = x[i];
        x[i] = x[len - 1 - i];
        x[len - 1 - i] = tem;
    }
    return x;
}

int main()
{
    char str[100];
    printf("input a string:");
    gets(str);
    puts(reverse(str));
    return 0;
}



//楼上的并不能输出最后结果,改好的,觉对能用,里面的一些错误也改了
#include<stdio.h>
int main()
{
void yy(char a[]);
char a[50];
int k;
printf("请输入字符串:");
//for(k=0;k<50;k++)
scanf("%s",a);
puts(a);
yy(a);
puts(a);
return 0;
}
void yy(char a[])
{
int i=0,j,n;
char t;
while(a[i]!='\0')
{
i++;
}
n=i-1;
j=i/2;
for(i=0;i<=j;i++)
{
t=a[i];
a[i]=a[n];
a[n]=t;
n=n-1;
}
}

scanf应该用%c并且循环到49后面手动添加个\0
要么直接用scanf %s后面给a就可以了

#include<stdio.h>
void main()
{
void yy(char a[]);
char a[50];
int k;
printf("请输入字符串:\n");
scanf("%s",a); //scanf里面写法不对,改了
puts(a);
yy(a);
puts(a);
return 0;
}
void yy(char a[])
{
int i=0,j,n;
char t; //这里不要再定义a了,更不能出现a[]后面不带初始化的写法
while(a[i]!='\0')
{
i++;
}
n=i;
j=i/2;
for(i=0;i<=j;i++)
{
t=a[i];
a[i]=a[n];
a[n]=t; //这里逻辑上有点问题,改了
n=n-1;
}
}


南阳市19613842907: C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符 -
哈食强肝: 问题很简单:你根本就没有翻转字符串!!!!第一,你在调用char yuan(char a)后,用什么来接受它的返回值?对吧,在主函数中根本没有任何char组来接受它.你似乎可以将 gets(a); 后的语句改写成 a = yuan( a ); 然后输出.告诉你这也样...

南阳市19613842907: C语言题目写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串… -
哈食强肝: 可以使用string.h标准函数吗?可以的话 这样做#include <stdio.h>#include <string.h> void Reverse_string(char *str) { int len = strlen(str), i; char t; for(i = 0; i <= len / 2; i ++) { t = str[i]; str[i] = str[len - i - 1]; str[len - i - 1] = t; } } int main() { char buffer[100]; ...

南阳市19613842907: C编程;写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串 -
哈食强肝: 第二种方法: #include #include main() {int n=0,i,m; char a[200],temp; gets(a); n=strlen(a); m=(n-1)/2; for(i=0;i

南阳市19613842907: 【C语言】写一个函数,用选择法对输入的一行字符按照由小到大的顺序排列. -
哈食强肝: #includevoid main() {printf(" 请输入字符串:\n"); char szBuf[512] = {0}; for (int i = 0; i {for (int j = i + 1; j {if (szBuf[j] > szBuf[j+1]){char tmp = szBuf[j];szBuf[j] = szBuf[j+1];szBuf[j+1] = tmp;}}} printf("排序后的字符串:%s\n", szBuf); }

南阳市19613842907: c语言编程问题(编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串.) -
哈食强肝: return只能返回一个值...不能返回数组,我跟你改改 #include<stdio.h> #include<string.h> void main() { int i;char a[100]; char f(char a[]); gets(a);f(a);puts(a);} char f(char a[]) { int n,i; char b[100];n=strlen(a); for(i=0;n>=0;i++,n--)b[i]=a[n]; for(i=0;i<=n;i++)a[i]=b[i]; }

南阳市19613842907: C语言编写一个函数,使输入的一个字符串复制到一个字符数组中,并在主函数中输入和输出字符串 -
哈食强肝: #include<stdio.h> #include<conio.h> char fun(char *a) { int i = 0, j = 0; char b[80]; while (a[i] != '\0' && a[i] == '*') { i++; } while (a[i] != '\0') { b[j] = a[i]; i++; j++; } i = 0; j = 0; while (b[j] != '\0') { a[i] = b[j]; i++; j++; } a[i] = '\0'; return a; } int main() { char a[80]; ...

南阳市19613842907: c语言:一个字符串,输入一个字符,编写函数dstr将输入的字符从字符串中删去.要求能调通! -
哈食强肝: 给你个参考参考,写的很不错的,不过不是我写的啦#include char* dstr(char* s, char c); int main() { char str[1000]; char ch; printf("请输入一个字符串:\t"); gets(str); printf("请输入要挖去的字符:\t"); scanf("%c",&ch); printf("删除...

南阳市19613842907: c语言编程 写一个函数,输入一行字符,将此字符串中最长的单词输出.用最简单的方法 -
哈食强肝: #include "string.h" #include "ctype.h" main() { char str[50]; char str1[50][20]; char str2[20]; int i,j,t;gets(str);j=0,t=0; for(i=0;str[i];i++) /*提取字符串中的单词,但是输入时每个单词之间只允许*/ { /*有一个字符如空格,逗号只有句末才能用句号*/...

南阳市19613842907: 用c语言写一个函数,输入一行字符,将此字符串中最长的单词输出.要有详细解释
哈食强肝: #include <iostream> void main() { int word(char c); int longest(char str[]); int i; char str[80]; printf("输入一行字符串\n\n"); gets(str); printf("\n\n最长的单词为:\n\n"); for(i=longest(str);word(str[i]);i++) printf("%c",str[i]); printf("\n"); } int word(...

南阳市19613842907: c语言:写一函数,输入一行字符,将此字符串中最长的单词输出 -
哈食强肝: #include<stdio.h> int Transpose(int a[3][3]) { int i,j,t; for(i=0;i<3;i++) for(j=0;j<i;j++) { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } printf("after transpose is \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%d",a[i][j]); } printf("\n"); } } void main() { int a[3][3]; int i,j; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网