c语言程序 输入一字符串存入数组中,逆序存放并输出

作者&投稿:钦建 (若有异议请与网页底部的电邮联系)
用C语言如何实现键盘输入一个字符串,存放到数组,然后逆序存放到原位置并输出?~

#include
#include
int main()
{
char str[100];
printf("输入一个字符串:");
scanf("%s",str);
char temp;
int t=strlen(str);
for(int i=0;i<t/2;i++)//这个循环用于逆序存放到原位置
{
temp=str[i];
str[i]=str[t-i-1];
str[t-i-1]=temp;
}
for(i=0;i<t;i++)
printf("%c",str[i]);
printf("
");
}

#include "stdio.h"#include "string.h"void inverse(char str[]){ int i,length; char tmp; length=strlen(str); for(i=0;i<length/2;i++) { tmp=str[i]; str[i]=str[length-1-i]; str[length-1-i]=tmp; }}void main(){ char ch[80]; printf("请输入一个字符串:"); gets(ch); inverse(ch); printf("逆序存储后的字符串为:"); puts(ch);}

对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来的字符数组中,最后输出。(不得调用任何字符串处理函数),例如:

输入

hello

world

输出

dlrow

olleh

扩展资料:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。

参考资料来源:百度百科-字符串



对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来的字符数组中,最后输出。(不得调用任何字符串处理函数),例如:
输入 hello world
输出 dlrow olleh

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

#define STR_LEN 1024

void InversePrint(char *str)
{
if (*str != '\0')
{
InversePrint(str + 1);
printf("%c", *str);
}
}

int main(void)
{
char string[STR_LEN] = {0};

printf("Please input a string: \n");
scanf("%s", string);
InversePrint(string);
printf("\n");

return 0;
}

运行例子:

Please input a string:
abcdefghijklmnopqrstuvwxyz
zyxwvutsrqponmlkjihgfedcba
Press any key to continue 转自: http://zhidao.baidu.com/question/164865665.html

逆序存放 输出正序?还是 逆序存放 输出逆序?


东莞市19858992831: C语言中,如何将一个字符串以数组的形式存储 -
湛管欣康: char s[100] = {'\0'}; gets(s); 现在你的字符串就存储在数组s中了,接下来循环判定数字吧

东莞市19858992831: c语言中怎么将字符串按字符存到数组中? -
湛管欣康: 直接char s[20]; scanf("%s",s);就可以啦!在C语言中,字符串本来就是以数组的形式存储的.

东莞市19858992831: 用C 如何将一个字符串存入数组变量 -
湛管欣康: //用字符串拷贝函数strcpy String s="字符串内容"; char des[50]; strcpy(des,s.c_str());

东莞市19858992831: 在C语言中,用gets输入了一个字符串,怎么用数组它? -
湛管欣康: #include "stdio.h" void main() {char s[50];int i = 0;gets(s);puts(s);while(s[i]!='\0'){printf("%d --> %c\n",i,s[i]);i++;}system("pause"); } 你可以看看 这样直接能存放到数组中 其中'\0'是结束标识,也就是空

东莞市19858992831: c语言 怎么样能将字符串存入数组 -
湛管欣康: 直接存入一个整形当中,然后建立一个字节指针,做指针加法,一个一个读呗~

东莞市19858992831: 如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中 -
湛管欣康: void main() { char a[80],*p=a; int b[80]={0},i=0,j=0,x=0; //!!!! printf("请输入一串字符\n"); gets(a); for(p=a;(*p)!='\0';p++) { if(((*p)>='0')&&((*p)<='9')) //!!!! { if(x==0) { b[i]=(*p)-48; i++; } else b[i-1]=b[i-1]*10+(*p)-48; x=1; } else x=0; } for(j=0;b[j]!=0;j++) ...

东莞市19858992831: c语言程序 输入一字符串存入数组中,逆序存放并输出 -
湛管欣康: 对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来的字符数组中,最后输出.(不得调用任何字符串处理函数),例如:输入 hello world 输出 dlrow olleh

东莞市19858992831: 在c语言中,如何输入:输入一串字符串,将其保存到数组,然后逆序保存到另一个数值,并打印出逆序字符串 -
湛管欣康: #include<stdio.h> void main() { char carr1[10],carr2[10]; printf("please you inputs a 9 charters:"); for(int i=0;i<9;i++) { scanf("%c",&carr1[i]);//输入字符到字符数组carr1 } for(int i=0;i<9;i++) { carr2[9-i]=carr1[i];//将原来的carr1倒序放到carr2 } printf("%s",arr2);//输出arr2字符数组的所有内容.}

东莞市19858992831: 关于c语言的一道编程题,求大神解答! 从键盘输入一个字符串存入一个字符数组中,其中任意两个相邻字符 -
湛管欣康: #include<stdio.h> #define N 99 int main(){char a[N],temp;int i=0,j;while(1){scanf("%c",a+i);if(a[i]=='@')//输入 @ 结束break;if(i>0&&(a[i]==a[i-1]+1||a[i]==a[i-1]-1)){temp=a[i];a[i++]='*';a[i]=temp;}i++;}for(j=0;j<i-1;j++){printf("%c",a[j]);}return 0; } 题意不清啊

东莞市19858992831: 如何用C语言,从键盘输入一个字符串,将其按逆序存入另一个字符数组中并输出,要求用最基本的C语言 -
湛管欣康: 以一个8为字符串为例:代码如下#include<stdio.h> int main() { int i,j; char ch1[8],ch2[8]; for(i=0;i<8;i++) { printf("请输入第%d个字符",i); scanf("%c",&ch1[i]); fflush(stdin); } for(j=0;j<8;j++) { ch2[j]=ch1[7-j]; printf("%c",ch2[j]); } }

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