精华内容
下载资源
问答
  • Linux C 字符串操作

    2017-07-06 15:27:07
    Linux C 字符串操作(连接、复制、长度)

    1、字符串输入

      1 #include <stdio.h>
      2 #include <stdlib.h>     //函数malloc()
      3 #include <string.h>
      4 
      5 int main()
      6 {
      7         int i = 0;
      8         char *tempString;
      9         char *stringArray[3];  //指针数组
     10         for(i = 0; i < 3; i++)
     11         {
     12                 printf("Enter: ");
     13                 scanf("%s", tempString);  //输入
     14                 //malloc() 在 堆中 申请内存空间
     15                 stringArray[i] = (char *)malloc(sizeof(char) * (strlen(tempString) + 1));
     16                 strcpy(stringArray[i], tempString);  //复制 字符串
     17         }
     18         printf("%s %s%s\n", stringArray[0], stringArray[1], stringArray[2]);
     19         for(i = 0; i < 3; i++)
     20         {
     21                 free(stringArray[i]);   //free() 释放
     22         }
     23         return 0;
     24 }
    执行:


    2、字符串长度

      1 #include<stdio.h>
      2 
      3 int main(int argc, char *argv[])
      4 {
      5         printf("string: %s\n", argv[1]);  //输入的第一个参数
      6         printf("length: %d\n", string_length(argv[1]));
      7 
      8         return 0;
      9 }
     10 
     11 int string_length(char *str)
     12 {
     13         int str_len = 0;
     14         char *temp = NULL;
     15         temp = str;
     16         while( *temp != '\0')
     17         {
     18                 str_len++;  //长度 自加
     19                 temp++;
     20         }
     21         return str_len;
     22 }
    执行:



    3、字符串连接

      1 #include <stdio.h>
      2 
      3 char *stringCatenate(char *dest_str, char *src_str);
      4 
      5 int main(int argc, char *argv[])
      6 {
      7         printf("%s\n", stringCatenate(argv[1], argv[2]));
      8 
      9         return 0;
     10 }
     11 
     12 char *stringCatenate(char *dest_str, char *src_str)
     13 {
     14         char *dtemp = NULL;
     15         char *stemp = NULL;
     16         dtemp = dest_str;
     17         stemp = src_str;
     18         while(*dtemp != '\0')
     19         {
     20                 dtemp++;
     21         }
     22         while(*stemp != '\0')
     23         {
     24                 *dtemp = *stemp;
     25                 dtemp++;
     26                 stemp++;
     27         }
     28         *dtemp = '\0';
     29         return dest_str;  //注意:此处不是返回 dtemp
     30 
     31 }
    执行:



    4、字符串复制

      1 #include <stdio.h>
      2 #include <stdlib.h>
      3 
      4 void stringCopy(char *dest_str, char *src_str);
      5 int stringLength(char *str);
      6 
      7 int main(int argc, char *argv[])
      8 {
      9         char *dest_str = NULL;
     10         printf("source string: %s\n", argv[1]);
     11         dest_str = (char *)malloc(sizeof(char) * (stringLength(argv[1]) + 1));
     12         stringCopy(dest_str, argv[1]);
     13         printf("back-up copy: %s\n", dest_str);
     14         return 0;
     15 }
     16 
     17 //___复制
     18 void stringCopy(char *dest_str, char *src_str)
     19 {
     20         char *dtemp = dest_str;
     21         char *stemp = src_str;
     22         while(*stemp != '\0')
     23         {
     24                 *dtemp = *stemp;
     25                 dtemp++;
     26                 stemp++;
     27         }
     28         *dtemp = '\0';
     29 }
     30 
     31 //___长度
     32 int stringLength(char *str)
     33 {
     34         char *temp = str;
     35         int len = 0;
     36         while(*temp != '\0')
     37         {
     38                 len++;
     39                 temp++;
     40         }
     41         return len;
     42 }
    执行:




    展开全文
  • Linux 字符串截取

    2018-06-25 11:10:28
    Linux字符串截取很有用。有八种方法。假设有变量 var=http://www.aaa.com/123.htm.1 . # 号截取,删除左边字符,保留右边字符。复制代码 代码如下:echo ${var#*//}1其中 var 是变量名,# 号是运算符,*// 表示从...

    Linux 的字符串截取很有用。有八种方法。

    假设有变量 var=http://www.aaa.com/123.htm.

    1 . # 号截取,删除左边字符,保留右边字符。

    复制代码 代码如下:

    echo ${var#*//}
    • 1

    其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符,即删除 http:// 
    结果是 :www.aaa.com/123.htm

    2 . ## 号截取

    复制代码 代码如下:

    echo ${var##*/}
    • 1

    ##*/ 表示从右边开始删除第一个 / 号及左边的所有字符,即删除 http://www.aaa.com/ 
    结果是 123.htm

    3 . %号截取,删除右边字符,保留左边字符

    复制代码 代码如下:

    echo ${var%/*}
    • 1

    %/* 表示从右边开始,删除第一个 / 号及右边的字符

    结果是:http://www.aaa.com

    4 . %% 号截取,删除右边字符,保留左边字符

    复制代码 代码如下:

    echo ${var%%/*}
    • 1

    %%/* 表示左边开始,删除第一个 / 号及右边的字符 
    结果是:http:

    5 . 从左边第几个字符开始,及字符的个数

    复制代码 代码如下:

    echo ${var:0:5}
    • 1

    其中的 0 表示左边第一个字符开始,5 表示字符的总个数。 
    结果是:http:

    6 . 从左边第几个字符开始,一直到结束。

    复制代码 代码如下:

    echo ${var:7}
    • 1

    其中的 7 表示左边第8个字符开始,一直到结束。 
    结果是 :www.aaa.com/123.htm

    7 . 从右边第几个字符开始,及字符的个数 
    复制代码 代码如下:

    echo ${var:0-7:3}
    • 1

    其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。 
    结果是:123

    8 . 从右边第几个字符开始,一直到结束。

    复制代码 代码如下:

    echo ${var:0-7}
    • 1

    表示从右边第七个字符开始,一直到结束。 
    结果是:123.htm

    注:左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示

    展开全文
  • linux c字符串-指针

    2018-05-16 10:28:14
    C语言中的字符串是最...字符串涉及到很多指针操作,对指针不太熟悉的建议先阅读linux c数组和指针(详解)。 字符串字面量(字符串常量)属于静态存储类别,所以只会存储一次,在整个生命周期内存在 //如果字符串字...

    原文地址http://daileinote.com/computer/c_base/02

    C语言中的字符串是最有用最重要的数据类型之一,虽然我们平常用的很多,但是内部各种细节相信不是每个人都能说得明白。

    字符串涉及到很多指针操作,对指针不太熟悉的建议先阅读linux c数组和指针(详解)

    字符串字面量(字符串常量)属于静态存储类别,所以只会存储一次,在整个生命周期内存在

    //如果字符串字面量之间没有间隔或者只是空白符,会自动串联
    //下面2个等价
    char mine[50] = "our website" " address is ""http://www.freecls.com";
    char mine[50] = "our website address is http://www.freecls.com";
    
    //下面2个等价,所以该数组声明的大小至少要为8
    char m[10] = "freecls";
    char m[10] = {'f','r','e','e','c','l','s','\0'};
        
    //一般由编译器确定数组的大小
    //等效,建议使用第一种
    char m[] = "freecls";
    char m[8] = "freecls";

     

    字符串数组形式和指针形式的区别

    数组形式
    当该程序被载入内存,下面的字符串也同时被载入内存,存储在静态存储区,当程序运行时,程序会分配足够的内存给url,然后 静态存储区的字符串复制到url内存中,所以url里的字符串是可改变的,但是url是常量,本身不可改变。

    char url[] = "http://www.freecls.com";
    url[0] = 'a';
    
    //attp://www.freecls.com
    printf("%s\n", url);
    
    //出错
    url++;

     

    指针形式
    同理程序被载入时,字符串也会存储在静态存储区,然后当程序运行时会把该存储区的地址存在指针变量ptr里(就是该字符串首字母的地址),ptr本身可以改变,但是它指向的静态存储区的值不能改变,只能读取,所以尽量在声明的时候带上const,这样编译器会帮助我们检查。

    char *ptr = "http://www.freecls.com";
    
    //改变自己,指针位置往后移动7位
    ptr = ptr+7;
    
    //www.freecls.com    w
    printf("%s %c\n", ptr, ptr[0]);
        
    //编译不报错,但是执行报错
    //如果在前面声明const char *ptr = "http://www.freecls.com";
    //则编译器会帮助我们检查并报错
    ptr[0] = 'a';

     

    字符串数组

    声明了数组arr,里面包含2个字符串指针(指向静态存储区,里面的字符串不可改变),即arr是一个数组

    const char *arr[2] = {
        "沧浪水",
        "http://www.freecls.com"    
    };

     

    声明了二维的字符数组,因为多了一次内存分配和静态存储区拷贝字符串,同时里面的字符串长度必须少于等于(50-1),所以可以改变arr里面的字符串,但是效率不如上面,所以如果上面的声明满足条件,则尽可能使用上面的那种。

    char arr[2][50] = {
        "freecls",
        "http://www.freecls.com"    
    };

     

    原文地址http://daileinote.com/computer/c_base/02

    展开全文
  • 一. 文本替换 1. perl -p -i -e "s/filepath/20160617/g" $configFile ...被替换或替换中有’/’用’\’转义 ,加 ‘ ‘没有用 perl -p -i -e 说明见:http://www.cnblogs.com/avenwu/arc

    一.  文本替换

    1.  perl -p -i -e "s/filepath/20160617/g" $configFile

     

    filepath:被替换串

    20160617:替换内容

    $configFile:文件

    被替换串或替换串中有’/’用’\’转义 ,加 ‘ ‘没有用


    perl -p -i -e 说明见:http://www.cnblogs.com/avenwu/archive/2013/04/18/3028690.html

    -p 告诉Perl对后面添加的文件名参数进行遍历

    -i 大致是用来读取文件时进行备份操作

    -e 告诉Perl后面跟上perl语句


    EG:

    文本testfile:

    PATH:filepath

    目标:

    PATH: /solr/dianxiao_ic_new/20160606

     

    => perl -p -i -e "s/filepath/\/solr\/dianxiao_ic_new\/20160617/g"  ./testfile

     

    perl -p -i -e "s/filepath/   ’/solr/dianxiao_ic_new/20160617’ /g" ./testfile  或 perl -p -i -e   "s/  ‘filepath’ /   ’/solr/dianxiao_ic_new/20160617’ /g"  ./testfile 没有用

     

     

     

    2.

    ${变量/被替换串/替换串}   替换第一个

    ${变量//被替换串/替换串}  替换所有

    被替换串/替换串中有’/’用’\’转义,或者加’ ’,

    EG:

    path=” /solr/dianxiao_ic_new/20160606”

    目标:path=”\/solr\/dianxiao_ic_new\/20160606”

    => ${path//  \/  / \\/}  或 echo ${path//   '/'   /   '\/' }

     

     

     

    ${var/’date’/’20160412’}

    替换变量var中第一个date串为20160412

     

    二.  文本切割

    awk  –F  ‘分隔符’  ‘{print:$1}’

    cut  –d  ‘分隔符’  –f 1     -s     (-f:切分后第几个字段)


    EG:

    ip=`LC_ALL=C  /sbin/ifconfig  |grep 'inet addr:'| grep -v '127.0.0.1' |cut -d ':' -f 2  -s | awk '{ print $1}'`


    cut  说明:


    [root@hadoop003 ~]# cut --help
    Usage: cut OPTION... [FILE]...
    Print selected parts of lines from each FILE to standard output.

    Mandatory arguments to long options are mandatory for short options too.
      -b, --bytes=LIST        select only these bytes
      -c, --characters=LIST   select only these characters
      -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter
      -f, --fields=LIST       select only these fields;  also print any line
                                that contains no delimiter character, unless
                                the -s option is specified
      -n                      with -b: don't split multibyte characters
          --complement        complement the set of selected bytes, characters
                                or fields
      -s, --only-delimited    do not print lines not containing delimiters
          --output-delimiter=STRING  use STRING as the output delimiter
                                the default is to use the input delimiter
          --help     display this help and exit
          --version  output version information and exit

    Use one, and only one of -b, -c or -f.  Each LIST is made up of one
    range, or many ranges separated by commas.  Selected input is written
    in the same order that it is read, and is written exactly once.
    Each range is one of:

      N     N'th byte, character or field, counted from 1
      N-    from N'th byte, character or field, to end of line
      N-M   from N'th to M'th (included) byte, character or field
      -M    from first to M'th (included) byte, character or field

    With no FILE, or when FILE is -, read standard input.




     

    展开全文
  • linux字符串函数总结

    千次阅读 2015-04-15 15:10:45
    字符串是一种重要的数据类型,但是C语言并没有显式的字符串数据类型,因为字符串字符串常量的形式出现或者存储于字符数组中。字符串常量适用于那些程序不会对它们进行修改的字符串。所有其他字符串都必须存储于...
  • Linux C字符串替换函数

    千次阅读 2012-03-23 17:11:53
    #include #include #include   /** * * @author: cnscn@163.com * @reference: lovesnow1314@...* 用新子串newstr替换源字符串src中的前len个字符内所包含的old
  • linux 字符串截取

    2018-12-06 10:06:00
    lishell中截取字符串的方法很多 [ li ](javascript:void(0); "复制代码") <pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; f...
  • linux字符串和整型互转

    千次阅读 2012-04-26 17:03:57
    int tm=1234567890; char *p = malloc(10*sizeof(char));  sprintf(p,"%d",tm); tm转字符串  printf("--------%s\n",p);  int t2;  t2 = atoi(p); 字符串转整型  p
  • Linux C字符串替换函数实例详解

    千次阅读 2017-12-03 11:10:19
    * @param const char* src 源字符串,被替换的字符串 * @param const char* oldstr 旧的子串,将被替换的子串 * @param const char* newstr 新的子串 * @param int len 将要被替换的前len个字符 * * @return char* ...
  • Linux c字符串拷贝函数

    千次阅读 2013-11-01 20:45:32
    函数说明:strcpy()会将参数src字符串拷贝至参数dest所指的地址。 返回值:返回参数dest的字符串起始地址。 说明:如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况, 在编写...
  • vim实现复制字符串到命令行

    千次阅读 2017-09-08 14:28:21
    很多人都想yank一个vim编辑器正在打开的字符串到命令行,无论是做字符匹配还是别的其他的原因都会有这个需求.在网上找了好多资料最后才整理出来一个方法如图这个地方 我用了可视化赋值v 选择完毕后按y把字符串yank了...
  • linux 字符串操作函数

    千次阅读 2018-11-08 16:59:16
    参数说明:str为一个字符串的指针,character为一个待查找字符。   所在库名:#include &lt;string.h&gt;   函数功能:从字符串str中寻找字符character第一次出现的位置。   返回说明:返回指向第一次...
  • Linux字符串操作函数

    千次阅读 2012-12-22 18:39:05
    [zz]Linux字符串操作函数 发表于1年前 (1)strcat(连接两字符串) 相关函数 bcopy,memccpy,memcpy,strcpy,strncpy 头文件 #include 函数定义 char *strcat (char *dest,const char *...
  • 复制代码 代码如下:echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm2. ## 号截取,删除左边字符,保留右边字符。...
  • Linux C 字符串操作的基本使用(上)

    千次阅读 2011-07-29 23:55:07
    所属头文件: 一、最基本的函数 int strlen(char *s) 函数说明:此函数用于获取s的长度,不包括'\0'注:切记最好保证s的尾部是'\0',strlen函数读到'\0'会自动停止然后统计字符...二、字符串查询类 1、查找指定的字符:in
  • linux sed 批量替换字符串

    千次阅读 2017-10-19 09:37:15
    linux sed 批量替换字符串 一月 21, 2014 ( NO COMMENTS ) Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。 命令如下: sed -i "s/原字符串/新字符串/g" `...
  • 字符串处理函数族strdup、strndup、strndupa、strdupa 先看一下man手册:man strdup STRDUP(3) Linux Programmer's Manual ...
  • 应用场景为:当我们想要在一台机器上模拟一个集群的时候,要复制出来多份配置文件,这样可以启动多个实例,从而来模拟一个集群环境。 sed ‘s/26379/26380/g’ sentinel-26379.conf > sentinel-26380.conf 这条...
  • Linux下C语言字符串操作之分割字符串 来源网络,如有侵权请告知,即处理!       废话不多说,直接上代码: 1. #include 2. #include < mysql / mysql .h> 3.  4. #define HOST ...
  • mv命令可以对文件进行重命名,echo命令用于字符串的操作。 例1:#- 从左开始截取第一个遇到的”-“符号(##- 则是从左开始截取最后一个遇到的”-“符号) for var in ls; do mv -f “$var” echo ${var#*-} ; do....
  • Linux 字符串替换函数

    2012-11-18 13:50:32
    #include #include #include   /** * * @author: cnscn@163.com * @reference: lovesnow1314@...* 用新子串newstr替换源字符串src中的前len个字符内所包含的
  • shell :linux sed 批量替换字符串

    万次阅读 2018-08-20 15:43:01
    linux sed 批量替换字符串 一月 21, 2014 ( No Comments ) Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。 命令如下: sed -i "s/原字符串/新字符串/g" `...
  • 字符串字符串常数

    千次阅读 2017-01-12 14:19:13
    一、字符串字符串常量 1.字符串是一串以空字符'\0'结尾的char类型值。字符串可以存放在字符数组中,也可以用字符串常量表示。在字符串常量中,空符(除了空字符)是被包含在双引号中的。编译器为它加上空字符。...
  • for file_old in `ls | grep my` do file_new=`echo "$file_old"|sed 's/my/you/g'` ...复制在本目录下产生新的文件,当然也可以复制到其他目录,同理cp命令也可以换成mv命令,这样就可以批量重命名
  • Linux字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 复制代码代码如下: echo ${var#*//} 其中 var 是变量名,# 号是运算符...
  • 1.分割字符串:strtok() 2.合并字符串:strcat() 1.分割字符串:strtok() 函数原型: char * strtok(char *s,char *delims) 参数: 1. s:表示字符指针,此指针应当指向一串字符串。或者 s 可以等于 NULL,s = ...
  •  grep php: 匹配所有包含php字符的文件名  grep -v .tar.gz: -v参数表示选出不匹配的文件名   此外如果想用于shell脚本判断包含php但有不以.tar.gz结尾的文件名是否存在, 可以这样写 if ls | grep...
  • linux 下批替换字符串和更改文件名

    千次阅读 2018-08-22 16:53:58
    1,替换所有符合条件的字符串 sed -i "s/原字符串/新字符串/g" `grep 原字符串 目录/ -rl` 比如命令: sed -i "s/oldstring/newstring/g" `grep oldstring test/ -rl` 1.2 替换指定文件的字符串 sed -i 's/原...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 159,232
精华内容 63,692
关键字:

linux复制字符串

linux 订阅