今天给各位分享c语言将中文反转的知识,其中也会对c语言二进制反转进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、C语言如何逆序输出一句中文的话2、C语言中如何将中文字符倒序输出3、C语言反转字符串怎么反转?4、C语言作业写字符串反转函数 可是输入字符串后反转输出是乱码 求助呀!!
C语言如何逆序输出一句中文的话
中文是双字节编码,要用 wchar。若是中文与英文混合码,则比较麻烦。
若用 char ,全中文,可以尝试 双字节交换再输出。例如:
int main( )
{
char str[80]=”尝试双字节交换再输出”;
char t1,t2;
int L,i;
L=strlen(str);
for (i=0;iL/2;i=i+2){
t1=str[i];t2=str[i+1];
str[i] = str[L-2-i]; str[i+1]=str[L-1-i];
str[L-2-i]=t1; str[L-1-i]=t2;
}
printf(“%s”,str);
return 0;
}
C语言中如何将中文字符倒序输出
先用strrev库函数把整个字符串倒过来,然后利用汉字编码为负数的特点判断为汉字的倒序连续输出两个字符即可达到目的。举例代码如下:
//#include “stdafx.h”//If the vc++6.0, with this line.
#include “stdio.h”
#include “string.h”
int main(void){
char a[]=”abcdefg我们都是来自五湖四海123456789″,i;
strrev(a);//把整个字符串倒过来
for(i=0;a[i];i++)
if(a[i]0)
printf(“%c”,a[i]);//输出非汉字字符
else printf(“%c%c”,a[i+1],a[i++]);//输出汉字
printf(“\n”);
return 0;
}
C语言反转字符串怎么反转?
读取字符串,浏览字符串每一个字符,
如果是空格就输出空格,
否则就保存当前位置,从当前位置移动到下一个空格或字符尾前,
从当前位置开始反向输出,直达回到保存的位置
最后输出回车,结束
//以下是C语言版的,需要的话,可以看看
#includestdio.h
#includestdlib.h
#includestring.h
#define String_MaxSize 10000//读入字符串的最大长度
int main()
{
char stringPtr[String_MaxSize];//保存读入的字符串
//循环读取直到文件尾
while(gets(stringPtr))
{
int stringPtr_length = strlen(stringPtr);//字符串的长度
int i;
//循环读取整段字符串
for(i = 0; i stringPtr_length; i++)
{
//如果字符为空格
if(stringPtr[i] == ‘ ‘)
{
//直接输出空格
printf(” “);
}
//如果字符非空格
else
{
int tempPos = i;//保存当前i的位置
int j;//代替i进行反向移动
//读取到下一个空格或字符串尾的前一个位置
while(i stringPtr_length stringPtr[i] != ‘ ‘)
{
i++;
}
i–;
//输出单词
for(j = i; j = tempPos; j–)
{
putchar(stringPtr[j]);
}
}
}
//输出回车
printf(“\n”);
}
//输出回车
printf(“\n”);
return 0;
}
C语言作业写字符串反转函数 可是输入字符串后反转输出是乱码 求助呀!!
中文需要单独处理的,一个中文占两个字节,反转时顺序不变。
#include stdio.h
#include stdlib.h
#include string.h
void reverse(char* s)
{
int len = strlen(s);
char* pNewStr = (char*)malloc(len + 1) ;
char* pNewMove = pNewStr;
char* pStr = s + len – 1;
while(pStr = s)
{
unsigned char ch = *pStr;
if(ch 127) //中文判断 不太确定,这个条件是否严谨,在本机测试没问题
{
*pNewMove = *(pStr – 1);
pNewMove ++;
*pNewMove= *pStr;
pNewMove ++;
pStr -= 2;
}else
{
*pNewMove =*pStr;
pNewMove ++;
pStr–;
}
}
pNewStr[len] = ‘\0’;
strcpy(s,pNewStr);
free(pNewStr);
}
int main()
{
char str[201];
printf(“输入要反转的字符串\n”);
scanf(“%s”,str);
reverse(str);
printf(“反转后字符变为:\n %s \n”,str);
system(“pause”);
return 0;
}
c语言将中文反转的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言二进制反转、c语言将中文反转的信息别忘了在本站进行查找喔。