#include "stdafx.h" #include "stdio.h" #include <cstring> int main(int argc, char* argv[]) { //char d[] = "123"; char s[] = "123456789"; char d[] = "123"; strcpy(d,s); printf("%s,\n%s",d,s); printf("Hello World!\n"); return 0; }
上述执行结果为:123456789,56789.分配的内存地址是连续内存。原来是123\0123456789\0,strcpy后变成了123456789\06789\0.如果把目标字串定义在前,源字符串定义在后,则产生运行期错误。访问到了不可预知的地址。
字符串拷贝函数实现
void stringcpy(char *to, const char *from){ assert(to != NULL && from != NULL); while(*from != '\0'){ *to++ = *from++; } *to = '\0'; }
int strcmp (const char * src, const char * dst) { int ret = 0 ; while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *src) ++src, ++dst; if ( ret < 0 ) ret = -1 ; else if ( ret > 0 ) ret = 1 ; return( ret ); }
字符串比较
查找子字符串在母字符串出现的位置,返回地址值。
char * findsub(char * mother, char * son) { for(int i = 0; i < strlen(mother); i++) { char * temp_mother = mother + i; char * temp_son = son; while( (* temp_mother) == (*temp_son) && ( (*temp_son) != '\0')) { temp_mother++; temp_son++; } if ( (*temp_son) == '\0') { return mother + i; } } return NULL; }
翻转单词:
void reverse_word() { char a[] = "I love you"; char b[] = "11"; printf("strlen b is %d\n",strlen(b));//strlen不包含最后的'\0'结束符, //这点和sizeof 不一样。 int end = strlen(a) - 1; int start = 0; while(start <= end) //将整个字符串翻转, { char temp = a[start]; a[start] = a[end]; a[end] = temp; start++; end--; } printf("after reverse is %s\n",a);//再逐个单词翻转。 start = 0; while(a[start] == ' ') start++; while(a[start] != '\0') { int end = start; while(a[end] != ' ' && (a[end] != '\0')) //找到第一个单词结束位置 end++; end--; printf("end is %d\n",end); int tempend = end + 1; while(start <= end) { char temp = a[start]; a[start] = a[end]; a[end] = temp; start++; end--; } while(a[tempend] == ' ' && (a[tempend] != '\0')) tempend++; start = tempend; } printf("a is %s\n",a); }
发表评论
-
gcc gdb常用命令
2010-10-06 11:20 1129gdb 链接: http://fanqiang.chinau ... -
指针数组,数组指针
2010-10-02 14:40 731void test(char* a[]) { ... -
如何用栈实现递归与非递归的转换
2010-04-10 15:18 950http://bbs.chinaunix.net/viewth ... -
华为笔试2
2009-06-16 09:37 985【转】http://hi.baidu.com/xiao1dia ... -
华为笔试1
2009-06-16 09:35 1021【转】http://hi.baidu.com/xi ... -
用两个栈实现一个队列的功能
2009-06-03 15:22 2584【转】http://hi.baidu.com/liangjw8 ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:41 1066【转】http://blog.csdn.net/s ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:39 1514【转】http://blog.csdn.net/seraphs ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:38 884【转】http://blog.csdn.net/s ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:37 882【转】http://blog.csdn.net/s ... -
c预编译 #define相关
2009-05-29 15:14 1195#是生成字符串: #define a(x) ... -
排序算法和二分查找
2009-05-17 15:50 827using namespace std; #includ ... -
C移位
2009-05-15 09:56 1367【转】 C提供了六种位运算运算符;这些运算符可能只允许整型操作 ... -
sizeof union struct 内存对齐
2009-05-14 20:30 2546【转】http://www.programfan.com/bl ... -
求100的阶乘
2009-05-06 16:32 1554#include <stdio.h> int m ... -
C字符串反转
2009-05-03 10:53 1798更改下面程序 #include string.h ... -
C链表相关
2009-05-03 10:38 784#include "stdafx.h" ... -
C题库连接
2009-04-29 09:28 763http://blog.chinaunix.net/u2/64 ...
相关推荐
易语言字符串操作源码,字符串操作,字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideChar,WideCharToMultiByte
### C#字符串操作详解 #### 一、引言 在C#编程中,字符串操作是一项基本而重要的技能,尤其对于初学者来说更是如此。本文旨在详细介绍C#中的字符串操作技术,帮助读者掌握如何高效地处理字符串。我们将从.NET框架...
### JavaScript字符串操作详解 在JavaScript中,字符串是用于表示文本数据的一种基本数据类型。字符串可以包含单个字符或多个字符组合成的文本序列。本文将详细介绍JavaScript中的字符串操作方法,帮助开发者更好地...
在本课程设计“广工数据结构课程设计字符串操作”中,我们将专注于一个特定的数据结构——字符串,并探讨如何对其进行高效的操作。字符串在编程中扮演着重要角色,无论是处理用户输入、文本分析还是数据存储,都离不...
C# 字符串操作方法实例 C# 中的字符串操作方法是指在 C# 编程语言中对字符串进行操作的各种方法和技术。字符串是使用 string 关键字声明的一个字符数组,字符串对象是“不可变的”,即它们一旦创建就无法更改。 1....
PHP 字符串操作全实例心得 PHP 字符串函数大全是 PHP 编程语言中处理字符串的函数的集合。这些函数可以对字符串进行各种操作,如加密、解密、格式化、搜索、替换等。下面是 PHP 字符串函数大全的详细说明: 1. ...
字符串操作函数大全(String) 在 C 语言中,字符串操作函数是非常重要的一部分,它们被广泛应用于各种编程领域。今天,我们将对字符串操作函数大全进行讲解,包括字符串拷贝、字符串连接、字符串比较等多种操作。 ...
Objective-C是一种用于开发iOS应用的主要编程语言,其字符串操作主要依赖于NSString类和NSMutableString类。NSString用于创建不可变字符串对象,而NSMutableString则用于创建可变字符串对象。以下是Objective-C中...
pb函数库之字符串操作函数 pb函数库提供了一系列的字符串操作函数,用于对字符串进行各种操作,包括字符串填充、截取、删除空格、计算长度、大小写转换、模式匹配等。下面是pb函数库中的一些常用字符串操作函数: ...
从给定的代码片段和部分描述中,我们可以深入探讨C#中的字符串操作函数,这是C#编程语言中处理文本数据的重要方面。以下是对标题“C#中字符串操作函数”所涉及的一些关键知识点的详细说明: ### 1. 字符串截取函数 ...
C++ 字符串操作函数 C++ 中的字符串操作函数是指在编程中经常使用的字符串处理函数,这些函数可以帮助开发者快速处理字符串操作。本文总结了常见的字符串操作函数,包括字符串复制、字符串连接、字符串比较、字符串...
在编程领域,字符串操作是日常开发中不可或缺的一部分。标题中的"字符串操作封装函数"指的是将常用的字符串处理功能封装成独立的函数,以便于在代码中重复使用,提高代码的复用性和可读性。这样的做法遵循了软件工程...
在C和C++编程语言中,字符串操作是基础且重要的组成部分。面试中,字符串处理函数的熟练掌握常常被视为衡量一个程序员基本功的标准。本文将详细解释三个常用的字符串操作函数:`strcat`、`strcpy`和`strcmp`,并提供...
在编程领域,字符串操作是日常开发中不可或缺的一部分。无论是在数据处理、用户界面交互还是算法实现中,我们都需要对字符串进行各种操作。本教程将全面介绍字符串操作的相关知识点,帮助你掌握这一重要的技能。 ...
本文将深入探讨Java中的字符串操作,包括创建、比较、拼接、查找与替换、分割以及格式化。 1. 创建字符串: Java中有两种方式创建字符串:通过`new`关键字或使用字符串字面量。 - 使用`new`关键字:`String str =...
C#-字符串操作类(替换字符串中危险字符、指定位置替换字符串、指定长度缩减字段并加...、指定字符串分割字符串、指定字符串位置获取字符串、过滤SQL中非法字符、检查SQL语句中是否有非法关键字、随机字符串生成、...
字符串操作代码入门 Python Python 中的字符串操作是编程语言的基础知识之一,字符串是 Python 中最常用的数据类型之一。本文将通过实例代码,详细介绍 Python 中字符串操作的基础知识,包括字符串的基本操作、索引...
在IT领域,字符串操作是编程中的基础且至关重要的部分,无论你使用哪种编程语言,如Python、Java、C++或JavaScript等。字符串是由字符组成的序列,可以用来存储文本信息。本资源“字符串操作大全”显然提供了关于...
在C++编程中,字符串操作是一项基础且重要的技能。C++标准库提供了多种处理字符串的工具,包括`std::string`类以及C风格的字符串函数。在这个“c++字符串操作”项目中,开发者可能利用了这些工具来实现对字符串的...