c语言 将一个输入的字符串的内容颠倒后输出

c语言 将一个输入的字符串的内容颠倒后输出,第1张

可以直接使拿贺拦用库函数strrev(), 需要包含头文件string.h

#include <stdio.h>

#include <string.h>

int main()

{

    char buf[1024]

    scanf("%s", buf)

    strrev(buf)

    printf("%s\n", buf)

    拍磨return 0

}

strrev不是C语言的函数,自己用指针来实现也非常简单。

char *_strrev(char *str)

{

char *f = str, *l = str + strlen(str), ch

while(f<l) {ch = *f*f++ = *(--l)*l = ch}

return str

}

wchar_t *_wcsrev(wchar_t *wcs)

{

wchar_t *f = wcs, *l = wcs + wcslen(wcs), ch

while(f<l) {ch = *f*f++ = *(--l)*l = ch}

return wcs

}

对于多字符的汉字的消胡调换次序,要想得到正确的结果,必须先将多字符转换为宽字符,调换次序后再转化为多字符。

#include<iostream>

#include <string.h>/兄晌/字符串 *** 作的头文件(strrev)

using namespace std

int main()

{

char input1[201],input2[201]

int i//t不需要

char output[201]={0}//清零

//先读入数据

cin>>input1

cin>>旦尘薯input2

int l1=strlen(input1),l2=strlen(input2)//取得长度

strrev(input1)strrev(input2)//字符串逆序

for(i=0i<l1i++)

input1[i]-='0'//将模者input1,input2变为数字

for(i=0i<l2i++)

input2[i]-='0'

for(i=0i<max(l1,l2)i++)

{

output[i]+=input1[i]+input2[i]//将其累加

output[i+1]=output[i]/10//若大于10,则下一位进一

output[i]%=10//这一位取个位数

output[i]+='0'//变成字符

}

strrev(output)//output逆序

cout<<output//输出

return 0

}

数组定义完,没有初始化;纯带系统会分配一段物理内存给数组,如果不初始化,就会打印旅激出乱码拆裤袜,该段内存地址有可能之前被使用过。

char i[100]={0},o[100]= {0}

结果对比:

未初始化数组

2.初始化数组


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12154936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存