主要3中实现方式:strncpy()、string类、memcpy()

通过string实现更方便。

1、strcpy()

无法实现将字符串的一部分拷贝给另一个字符串。

2、strncpy()

利用标准库函数strncpy(),可以将一字符串的一部分拷贝到另一个字符串中。strncpy()函数有3个参数:第一个参数是目录字符串;第二个参 数是源字符串;第三个参数是一个整数,代表要从源字符串拷贝到目标字符串中的字符数。以下是一个用strncpy()函数拷贝字符串的一部分的例子:

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
    char buf[20]="6.0 1257487794/n";
    char da[5]={0};
    char num[15]={0};    
    int i=0, j=0;

strncpy(da, buf, 3);

strncpy(num, buf+(strlen(buf)-11) , 10);
    
    printf("buf= %s, da= %s, num= %s/n", buf, da, num);

return 1;

}

在上例中,第一次调用strncpy()函数时,它将源字符串的头3个字符拷贝到da中。第二次调用strncpy()函数时,它将源字符串的最后10个字符拷贝到num中,其实现过程为:
    (1)用strlen()函数计算出buf字符串的长度,即strlen(buf)。
    (2)将buf的长度减去11(10是将要拷贝的字符数再加中间的‘ ’字符),得出buf中剩余的字符数,即pstrlen(buf)-11。
    (3)将strlen(buf)-11和buf的地址相加,得出指向buf中倒数第10个字符的地址的指针, 即buf+(strlen(buf)-11)。这个指针就是strncpy()函数的第二个参数。
    (4)在strncpy()函数的第三个参数中指定要拷贝的字符是10。

打印输出如下所示:

wangwei@wangwei-desktop:~/work/data_check$ ./test
    buf= 6.0 1257487794
     , da= 6.0, num= 1257487794

3、memcpy()

4、string

string类的构造函数

string(const string &str,string size_type pos=0,size_type n=npos)

将一个string对象初始化为对象 str中从位置pos开始到结尾的字符,  或者从位置开始的n个字符。

 int loc1 = im_name.find_last_of('\\');int nameLen = sizeof(im_name);string imgName(im_name,loc1+1);

im_name为某图片的绝对全路径,  通过string类的查找函数 找到最后一个文件夹的反斜杠,得到索引后,利用string类的 构造函数,即可实现

将 im_name的字符串中的图像文件名 提取到 新的字符串 imgName中。

将字符串的一部分拷贝到另一个字符串相关推荐

  1. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个...

    2019独角兽企业重金招聘Python工程师标准>>> 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如"我ABC ...

  2. Python统计一个字符串中所有字符在另一个字符串出现的总次数

    代码功能:统计一个字符串中所有字符在另一个字符串中出现的总次数. 技术要点:函数式编程. 可能的应用:垃圾邮件分类.在大部分垃圾邮件中,为了防止被分类为垃圾邮件,会在一些关键字中间插入类似于[.].* ...

  3. 编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串。 但是要保证汉字不被截半个。

    题目: 编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4, 应该截为"我AB",输入 ...

  4. 函数 —— strncpy() (内存重叠) memcpy() memmove() 一个字符串拷贝给另一个字符串

    char *strncpy(char *dest, const char *src, size_t n) *strncpy(char *dest, const char *src, size_t n) ...

  5. python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串...

    1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件, 第一个字母和最后一个字符是第一次重复 这个子字符串的中间字母没有重复 这个 ...

  6. c语言判断回文字符串递归,用递归实现判断一个字符串是否为回文串

    //用递归实现判断一个字符串是否为回文串 import java.util.Scanner; public class Palindrome { //判断是否为回文串 in型参数代表字符串起止位置 p ...

  7. mysql 长度为1 的空字符串_MYSQL,如果定义了一个字符串的字段,长度为255,那么当我添加一个空字符串数据时占用空间吗?...

    你的位置: 问答吧 -> PHP -> 问题详情 MYSQL,如果定义了一个字符串的字段,长度为255,那么当我添加一个空字符串数据时占用空间吗? MYSQL,如果定义了一个字符串的字段, ...

  8. aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址 ...

  9. Java中找出s字符串的回文_给定一个字符串 s,找到 s 中最长的回文子串。

    题目描述:给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 思路: 判断s[i..j]是否是回文字符串,依赖于s[i+1...j-1],这种一个问题的结果依赖于 ...

最新文章

  1. SVN更换修改用户名
  2. Eclipse上GIT插件EGIT使用手册
  3. Android MVP模式就是这么回事儿
  4. fotify php审计,代码安全审计(二)Fortify介绍及使用教程
  5. 顶级程序员的心得 Coders at Work (I)
  6. 应用数仓ODBC前,这些问题你需要先了解一下
  7. 在28岁这一年,我也成为了一名创业狗
  8. 解决Ubuntu16.04中文乱码问题
  9. 和is哪个好_眼霜哪个牌子好用?这些品牌的眼霜睡前涂一涂,黑眼圈细纹没有了...
  10. 计算机丢失lua51dll怎么修复,lua51.dll
  11. VS Code安装,配置keil安装,Proteus8.6
  12. 经纬度格式转换-(互转 度转度分秒 度分秒转度……)
  13. hbase数据库scan操作_HBase Scan 使用
  14. mysql 空闲链接超时时间_解决mysql 中共8小时空闲后连接超时的有关问题
  15. 计算机网络考研、招聘面试问题总结
  16. 采用busybox的嵌入式Linux根文件系统的的制作方法
  17. 华为鸿蒙系统建立生态链的环境,华为自研操作系统,怎么构建生态?感觉太难了?...
  18. 基于ssm+mysql的javaee微博博客系统,Java实现类似新浪微博网站、朋友圈分享系统
  19. 哪种护眼灯对眼睛比较好?眼科医生推荐的护眼灯
  20. 基于 jsp+servlet+mysql 开发旅游推介网站和后台管理系统(maven项目)

热门文章

  1. MySql 中 一次update更新多条数据
  2. AVM 环视拼接方法介绍
  3. Google最热门60款开源项目
  4. Latex出现错误:File ‘citesort.sty‘ not found.
  5. 大型网站数据库优化及浅析大型网站的架构
  6. 异常解决:java.lang.IllegalStateException: Failed to introspect Class
  7. hessian矩阵特征值
  8. 小帅一点资讯小程序源码
  9. UML时序图画法简介-sequenceDiagram
  10. mmap()、munmap()的用法、例子