- 浏览: 73266 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
文章分类
- 全部博客 (86)
- Java_Develop (6)
- Develop about Android (11)
- Develop about C (3)
- Develop about C++ (13)
- Develop about Objective-C (8)
- Develop about XML&DOM4J (6)
- Develop about JSP (7)
- Develop about Servlet (14)
- develop about MySql (4)
- Develop about Java_Socket (1)
- Develop about Java_Thread (4)
- Develop about IOS (8)
最新评论
-
eric_weitm:
在效率本身上而言,引用也有优势。另外,在编译器实现时,指针的传 ...
C++中的 引用和指针区别
1、 连接函数strcat
其函数原型为:strcat(char [ ], const char [ ] );
strcat是string catenate(字符串连接)的缩写。该函数有两个字符数组的参数,函数的作用是:将第二个字符数组中的字符串连接到前面字符数组的字符串的后面。第二个自负数组被指定为const,以保证该数组中的内容不会在函数调用期间修改。连接后的字符串放在第一个字符数组中,函数调用后得到的函数值,就是第一个字符数组的地址。
例如:
#include<iostream>
usingnamespace std;
int main()
{
char str1[]="People's Republic of";
char str2[]="China";
cout<<strcat(str1,str2);
};
输出结果为:Perple’s Republic of China
2、字符串复制函数
其函数原型为:
strcpy ( char[ ] , const char[ ]);
strcpy是string copy(字符串复制)的缩写。它的作用是将第二个字符数组中的字符串复制到第一个字符数组中去,将第一个字符数组中的相应字符覆盖。
上例如果调用strcpy(str1,str2);执行后,str2中的五个字符“China”和”\0”,共六个字符都会复制到数组str1中。
说明:a、在调用strcpy函数时,第一个参数必须是数组名(如str1),第二个参数可以是字符数组名,也可以是一个字符串常量。
例如:strcpy(str1,”China”);
b、可以用strcpy函数将一个字符串中前若干个字符复制到字符数组中去。
例如:strcpy(str1,str2,2);
作用是将str2中前面两个字符复制到str1中去,然后再加一个’\0’。
C、只能通过调用strcpy函数来实现将一个字符串赋给一个字符数组,而不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。
如下非法:
str1=”China”; //不能将一个字符串常量赋给一个字符数组
str1=str2; //不能将一个字符数组的内容赋给另一个字符数组
str1代表数组地址,是常量,不能被赋值,不能作左值。
3、 字符串比较函数:strcmp
函数原型:strcmp( const char [ ], const char[ ]);
strcmp是string compare(字符串比较)的缩写。作用是比较两个字符串。由于这两个字符数组只参加比较而不应改变其内容,因此两个参数都加上const声明。
如下声明合法:
strcmp(str1,str2);
strcmp(“China”,”Korea”);
strcmp(str1,”Beijing”);
比较的结果由函数值带回。
a、如果str1=str2,函数值为0。
b、如果str1>str2,函数值为一正整数。
c、如果str1<str2,函数值为一负整数。
字符串比较的规则与其他语言中的规则相同,记对两个字符串自左至右逐个自负相比(按ASCII码值大小比较),知道出现不同的字符或遇到’\0’为止。如全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。
不能用以下形式比较:
if(str1>str2)
{
cout<<"yes";
}
字符数组名str1和str2代表数组地址,上面写法表示将两个数组地址进行比较,而不是对数组中的字符串进行比较。应为:
if(strcmp(str1,str2)>0)
{
cout<<"yes";
}
4、 字符串长度函数strlen
函数原型:strlen(const char [ ]);
strlen是string length(字符串长度)的缩写。它是测试字符串长度的函数。其函数的值为字符串中的实际长度,不包括’\0’在内。
例如:char str[10] = “China”;cout<<strlen(str);
应用举例:
通过函数调用求三个字符串的最大值:
可以用一个函数max_string来找出n个字符串中的最大者。在main函数中设一个二维的字符数组str,大小为3*30,即三行30列,每行可以容纳30个字符。可以把str[0],str[1],str[2]看作三个一维字符数组,它们各有30个元素。可以把它们如同一维数组那样进行处理。可以用cin分别读入3个字符串。然后调用max_string函数可以得到最大的字符串,把它放在一维字符数组string中,在函数max_string中输出最大的字符串。程序如下:
//============================================================================
// Name : C++_array.cpp
// Author : yangbo_hbzjk
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <string>
using namespace std;
int main()
{
void max_string(char str[][30],int i); //函数声明
int i;
char coutry_name[3][30];
for(i=0;i<3;i++)
{
cin>>coutry_name[i]; //输入三个国家名
}
max_string(coutry_name,3); //调用max_string函数
return 0;
};
void max_string(char str[][30],int n)
{
int i;
char string[30];
strcpy(string ,str[0]); //使string的值为str[0]的值
for(i=0;i<n;i++)
{
if(strcmp(str[i],string)>0) //如果str[i]>string
{
strcpy(string,str[i]); //将str[i]中的字符串复制到string
}
cout<<endl<<"the largest string is:"<<string<<endl;
}
}
发表评论
-
C++中的静态关联与动态关联
2012-04-18 09:22 980一、关联:去顶调用的具体对象的过程称为关联,就是把一个函数 ... -
什么情况下应当声明虚函数?纯虚函数声明
2012-04-18 09:21 1291注意: 只能用virtual声明类的成员函数,使之成为虚 ... -
C++中的函数多态性应用&虚函数的灵活应用
2012-04-17 12:08 873一、多态性 派生类对象可以替代基类对象为基类的引用 ... -
C++中类class与结构体struct的异同区别
2012-04-11 12:02 1052结构体struct是C语言中用来封装类似于类的模块。 因 ... -
C++中的共用体(union)结构解析与结构体(struct)共用体(union) 的区别
2012-04-10 10:02 2083共用体(union) 一、 基础概念 有时需要使几种不 ... -
动态内存分配和撤销方式剖析
2012-04-10 08:48 715动态内存分配和撤销方式剖析 在C语言中是利用库函数mal ... -
指向结构体变量的指针与链表结构的关系应用
2012-04-08 19:24 1208指向结构体变量的指 ... -
C++中的 自定义数据类型
2012-04-08 12:00 911自定义数据类型 一、结构体类型 1、 C++允许用 ... -
C++中的指针入门及剖析
2012-04-05 08:48 993C++——指针复习 一、 ... -
C++中的 引用和指针区别
2012-03-20 11:06 841引用是C++中的概念, ... -
C++数组进阶——一维数组的应用及起泡法思路
2012-03-30 15:35 923C++复习——数组 一、相关概念 1、具有相同属性有内在联 ... -
C++数组进阶——二维数组的应用及行列互换存储思路,擂台法求最大值
2012-03-30 15:58 1648二维数组的定义和引用 一、相关定义 1、具有两个下标的 ...
相关推荐
C++字符数组练习题及解答[归类].pdf
C++数组与指针深入剖析C++数组与指针深入剖析C++数组与指针深入剖析C++数组与指针深入剖析
c++实现的vector的数组中是否存在某元素和查找该元素的迭代器的函数
C++指针 数组 内存释放 相关说明
c++实现的找出数组中最大值的程序,有输入数组函数,显示数组函数。和找出数组最大值的函数
c++的高级应用,c++函数数组指针的使用方法。在使用中大大缩短了我的代码量,感觉不错的方法
C++字符数组练习题及解答.docx
很清楚展现了数组的定义, 初始化, 输入和输出 ,字符数组的应用,以及多维数组应用。
字符数组与字符指针这两个概念在C/C++中非常重要,编程时会经常使用到,但是很多人容易错误使用!两者有相同地方,也要不同地方,本文详细介绍了两者的区别,能给读者一定的参考!
字符数组
C#将字符串数组传递给C++ DLL(MFC),VS2010
c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程...
C++实现数组类,获取数组长度,数组的输入,数组的输出,数组的复制。
主要介绍了C/C++ 避免数组越界的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
c++数组方面的知识,不错的函数;可以参考着用
C++字符串函数大全.txtC++字符串函数大全.txt
C++字符数组 用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。字符数组具有数组的共同属性。由于字符串应用广泛,C和C++专门为它提供了许多方便的用法和函数。 字符数组的定义和初始化 定义...
c++数组指针函数等关键内容讲解 c++数组指针函数等关键内容讲解 c++数组指针函数等关键内容讲解
Labview调用C++编写的dll实现字符串数组的传递,C++和Labview实现源代码,开发环境:VS2010+Labview2015
c++指针数组.rarc++指针数组.rarc++指针数组.rarc++指针数组.rarc++指针数组.rarc++指针数组.rarc++指针数组.rarc++指针数组.rar