首页 > 编程知识 正文

c语言输入一串字符倒序输出,c语言中将字符串倒序输出

时间:2024-03-07 18:23:42 阅读:332277 作者:TSHY

本文目录一览:

怎么用C语言输入一个数,让它倒序输出成一个数,

可以将输入的多位数顺序存放到一个数组中,之后逆序输出即可。

具体的实现方法可以参考如下程序:

#includestdio.h

#includestring.h

void main()

{

    char num[20];

    int i;

    printf("输入一个多位数:")

    scanf("%s", num);  // 将多位数作为一个字符串的形式一次性输入,保存在num数组中

    // 将数组num中的字符逆序输出,即实现多位数的倒序输出  

    for(i=strlen(num)-1; i=0; i--)

        printf("%c", num[i]);

}

如何用C语言将字符串逆序输出?

C语言程序如下:

#includestdio.h

#includestring.h

main()

{

int i,j,t,n;

char a[10];

printf("请输入字符串:");

gets(a);

n=strlen(a);

for(i=0;i=n/2;i++)

{

t=a[i];

a[i]=a[n-1-i];

a[n-1-i]=t;   

}

for(j=0;jn;j++)

printf("%c",a[j]);

printf("n");

}

扩展资料:

字符串倒序输出的五种方法

1、使用数组循环

2、StringBuffer的reverse方法

3、StringBuffer的循环

4、栈的后进先出

5、迭代完成

C语言怎么在不用数组的情况下将输入的字符串倒序输出?

那就使用指针了

int main(void )

{

char* str="Hello china";

char* p = str; char* end;

while(*p!='')

{

end=p;

p++;

}//此循环是为了找到字符串的结尾字符

while(end!=str) {printf("%c",*end); end--;} //从最后一个字符开始逆向输出,直至第一个字符

printf("%cn",*end);//将最后一个字符输出

}

承接单片机开发

C语言:输入一个字符串,然后逆序输出

#include stdio.h

int main()

{  int len,i;

char str[100];

gets(str);

len=strlen(str);

for(i=len-1;i=0;i--)

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

return 0;

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

请教C语言字符串倒序输出

#includestdio.h

#includestring.h

void main()

{

char string1[200]; //用于存放输入的字符串

char string2[200]; //用于存放倒序后的字符串

int invertion(char *ch1, char *ch2); //声明函数

printf("Please input a sentences:n");

gets(string1); //这里不要用scanf,因为scanf遇到空白符就会结束

printf("Your inputed sentences is:%sn", string1);

invertion(string1, string2);

printf("The invertion sentences is:%sn", string2);

getchar();

}

int invertion(char *ch1, char *ch2)/*char1 接收实参传过来的原字符串指针 char2 接收倒序后的新字符串返回主函数*/

{

int count = 1,num=0;

char *ch=ch1;

for(;*ch1!='';ch1++)// 统计单词个数

{

if(*ch1==' ')

count++; //单词数等于空格数加1,前面把count初始化为1就是这个原因

if(*ch1==' '*(ch1+1)==' ') //防止单词之间有2个空格符而多计数了一个单词数

count--;

}

printf("count = %dn", count);

ch1=ch1-1;//前面的ch1经过循环之后已经指向字符串的结束标志'',这里减1是为了让它指向字符串的最后一个字符

while(ch1=ch)//让ch1从指向string1的最后一个字符开始往前递减,当减到字符串的首个字符时结束

{ int j=num; //保存num,后面要用到这个数

if(*ch1!=' ')//记录每个单词的长度 ,以空格符作为标志

num++;

else // 知道了每个单词的长度之后,就可以用循环将字符以单词为单位写入数组string中,这样的话单词内就不会倒序了

{

for(int i=1;i=j;i++,num--)

*(ch2-num)=*(ch1+i);

*ch2=*ch1;

}

ch1--;

ch2++;

}

for(int i=1;i=num;i++,ch2++)//因为string1的第一个单词前没有空格符,肯定输不出来,所以单独用一个循环将其输出

*(ch2-num)=*(ch1+i);

*ch2=''; //string2的结束标志

}

这是我做了修改之后的程序,看看符不符合要求!!

你的那个定义的变量太多,很混乱!循环语句太乱了,if判断条件与循环条件不正确

已经做了修改,看符合要求不,不行的话,再说!!!

又做了修改了,看符合要求不??

不会吧,我调试通过还运行了!!不然怎么会发上来啊!!至于算法问题我给注释吧,你看看!!

c语言关于 字符串倒序并输出

for

(i

=

0;

i

len

;

i++)

{

a1[i]

=

a[len

-

i

-

1];

//

这样写整个转了一圈,而且数据被破坏了,你没有先保存原a[i]的值,丢了!

}

for

(i

=

0;

i

len

/

2;

i++)

这是正确写法,前半部分与后半部分交换!!

{

temp

=

a[i];

//保存

a[i]

=

a[len

-

i

-

1];

后面的移前面

a[len

-

i

-

1]

=

temp;

//将前面的保存的数据,移到后面

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。