在UTF8(linux)下,逆置汉字字符串

 #include <stdio.h>

   int main()
   {
           char c[]="我是如此热爱编程!";
           int index=0,min=0,max;
           while(c[index])
        {
                index ++;
        }
        max = index -1;
        while(max > min)
        {
                char tmp = c[min];
                c[min]=c[max-2];
                c[max-2]=tmp;

                tmp = c[min+1];
                c[min+1]=c[max-1];
                c[max-1]=tmp;

                tmp = c[min+2];
                c[min+2]=c[max];
                c[max]=tmp;
                max -=3;
                min +=3;
        }   

        printf("%s\n",c);
        return 0;
}

运行结果:

[email protected]:~$ swop
!程编爱热此如是我

在utf8模式下,一个汉字占用3个byte,在gbk下,一个汉字占用2个byte

时间: 2024-10-17 21:53:42

在UTF8(linux)下,逆置汉字字符串的相关文章

&lt;linux下内置命令和外部命令&gt;

Linux下内置命令和外部命令 1.linux的命令可以分为内部命令和外部命令: 内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高. 而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存. enable既可以查看内部命令,同时也可以判断是否为内部命令. [[email protected] ~]# enable ls  //判断ls是否为内置命令-bash: enable: ls: not a shell builtin //它不是内部命令[[email protected] ~

linux下精确替换某个字符串

1.linux下精确替换某个字符串 sed -i 's/\<old\>/new/g' filename.txt 2.举例: 2.1有个文件名为filename.txt,内容如下: newdalsad dsadsaold old dnw new 2.2 将精确查找到的old替换为new sed -i 's/\<old\>/new/g' filename.txt 那么替换后内容如下: newdalsad dsadsaold new dnw new 原文地址:https://www.cn

C语言strrev()函数:字符串逆置(倒序、逆序)

头文件:#include<string.h> strrev()函数将字符串逆置,其原型为:    char *strrev(char *str); [参数说明]str为要逆置的字符串. strrev()将str所指的字符串逆置. [返回值]返回指向逆置后的字符串的指针. strrev()不会生成新字符串,而是修改原有字符串.因此它只能逆置字符数组,而不能逆置字符串指针指向的字符串,因为字符串指针指向的是字符串常量,常量不能被修改. [函数示例]看看strrev()是否改变原有字符串. #inc

玩转PHP(一)---php中处理汉字字符串长度:strlen和mb_strlen

注:本文为小编原创,如若转载,请注明出处:http://blog.csdn.net/u012116457/article/details/42536039 今天正式开始学习PHP了,不过小编一不小心就发现了一个使用PHP时需要特别注意的地方. 如这个例子: <html> <meta charset="utf-8"> <body> <?php $name="鸣人"; print "姓名的长度为:".strl

汉字逆置

在计算机中,一个汉字用无法用1个字节来表示 #include<stdio.h> int main() { char buf[256] = "你好"; int len = 0; while(buf[len++]); len--; printf("%d\n",len);// 4一个汉字两个字节 //printf("%p\n",buf); return 0; } 在windows下采用gbk字符编码,一个汉字采用两个字节表示,所以windo

Linux下实现字符串截取方法总结

Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取.具体截取方式如下: a.#截取,可以实现删除左边字符,保留右边字符 从左边第一个</>开始,删除</>及之前的所有字符 str=http://www.baidu.com/index.html echo ${str#*/}        # right first / 输出:      /www.baidu.com/index.html b.##截取,可以实现删除左边字符,保留右边字符 从最右边的&l

c语言代码编程题汇总:把字符串中的内容逆置

字符串中的内容逆置  程序代码如下: 1 /* 2 2017年3月5日14:48:11 3 功能:把字符串的内容逆置 4 */ 5 6 #include"string.h" 7 #include "stdio.h" 8 #define N 81 9 void fun(char *s) 10 { 11 int i, n = strlen(s)-1; //strlen()是求字符串全部元素个数包括最后的'\0'(字符串结尾的字符),而strlen()-1表达式所求得是数

Linux下MySQL5.6的修改字符集编码为UTF8

一.登录MySQL查看用SHOW VARIABLES LIKE 'character%';下字符集,显示如下: +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_conn

Linux下将UTF8编码批量转换成GB2312编码的方法

Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux下如何进行转换 UTF8编码和GB2312编码是有区别的,在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换 成GB2312编码,可是一个个的转换十分麻烦,下面小编就教你如何在Linux下将UTF8编码批量转换成GB2312编码. 背景 本人在使用oracl