一开始从看strcmp 和strleg等函数开始,发觉strcmp函数的语法是这样:
要包含头文件
传入的参数为字符指针变量,这不禁让我有点迷糊了,因为对于函数的传参而言,本来就不是很懂,又加上一个指针,有点····
在C Free 的参考手册上看到关于strcmp函数的一个例子,如下:
printf( "Enter your name: " );
scanf( "%s", name );
if( strcmp( name, "Mary" ) == 0 )
printf( "Hello, Dr. Mary!\n" );
首先肯定要对name变量定义(C中先定义,后使用),可以用char name[10] 或者 char *name进行定义。
字符数组既可以当作普通数组也可以用于存储和处理字符串
字符数组的初始化: char str[ 5 ] = { 'I', 'L', 'O', 'V', ' E'}; char str1[ 5]={"ILOVE"}(这里大括号可以省略);
字符串的输入格式: scanf 函数和 gets 函数(char str[ ] gets(str) )
字符串的输出格斯: printf函数和 puts函数 (基本没区别,只是在输出大量字符串时 gets 和 puts 快一点)
字符串处理函数:strcmp、strlen、strcat、strcpy四个基本函数。
1、strcmp()函数比较字符串str1 andstr2, 是按照ascall来比较的
#include <string.h> 函数的结构如下
int strcmp( const char *str1, const char *str2 );
返回值 | 解释 |
less than 0 | str1 is less than str2 |
equal to 0 | str1 is equal to str2 |
greater than 0 | str1 is greater than str2 |
2、strlen()函数返回字符串str 的长度
#include <string.h>
size_t strlen( char *str );
那么strlen与sizeof的区别,查看http://baike.baidu.com/view/736226.htm
3、strcat()函数将字符串str2 连接到str1的末端,并返回指针str1.废话不多说,直接看程序
#include<iostream>
#include <string.h>
using namespace std;
int main()
{
char name[10];
char *title;
//char * name;
printf( "Enter your name: " );
gets( name );
title = strcat( name, " the Great" );
printf( "Hello, %s\n", title );
// return 0;
}
4、strcpy() 复制字符串from 中的字符到字符串to,包括空值结束符。返回值为指针to(去,这里编辑太不方便了····)
#include <string.h>
char *strcpy( char *to, const char *from );
字符数组的基本用法以及相关函数暂时分析到这,下面去看看那个string的相关用法 这个也迷倒了我好一阵了
C++中抛弃了C语言中的char*的字符串而选用standard program library中的string类。因为不必担心内存是否足够、字符串长度等等
包含的头文件 #include<string>
具体详情请看下一篇 C++中string的用法