C语言字符串

一、字符串基础

注意:字符串一定以\0结尾。

Printf(“yang\n”);

其 中yang为字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’。字符串由很多的字符组成,通常使用字符数组来存储字符串,如 char name[10]=“yang”;也可以以printf(name);的形式输出,即通过数组来访问字符串,但会有警告。因为默认情况 下,printf函数只接受字符串常量作为参数(对变量并未写明)。

字符串的三种写法:

  1. Char name[8]=“yang”;//数组占用了8个字节的存储空间,但是只含有5个字符。
  2. Char name[8]={‘y’+‘a’+‘n’+‘g’+‘\o’};
  3. Char name[8]={‘y’+‘a’+‘n’+‘g’+‘0’};

这三种写法在内存中的表现都是一样的。

Char name[]={‘y’+‘a’};前面不写个数,不是一个字符串,只能说是一个普通的字符数组。

char name[]=“yang”;

Name[1]=‘o’;把字符串的第二个元素值由a改成o。

二、字符串使用注意点

(1)分析代码,了解\0的作用。

Char name[]=“yang”;

Char name2[]={‘o’+‘k’};

Printf(“name2=%s”,name2);

%s:根据右边的参数,打印字符串(遇到\0为止)

上面代码的打印结果为:okyang

下面是内存情况分析:

问1:Char name[]=“y\0ng”;则打印结果为什么?(oky)

问2:此时打印name的值,使用%s是多少?Y\0ng还是y?

(2)Strlen函数

Strlen函数计算字符串的长度(字符数)但不包括\0,是字符数不是字数。比如一个汉字占三个字符。

Strlen(“haha”);//长度为4

Strlen(“哈haha”);//长度为7而不是5

char name[]=“it\0cast”;

Strlen(name);值为2,因为strlen从字符串的地址开始计算,直到遇到\0为止。

假设

Char name[]=“itcast”;

Char name2[]={‘o’+‘k’};

Int size=strlen(name);

此时size的值为8。

(3)练习,编写一个函数char_contains(char str[],char c),如果字符串中包含字符c,则返回1,否则返回0。

Int char_contains(char str[],char c)

{

//遍历整个字符串

For(int i=0,i<strlen(str);i++)

{

If(str[i]==c)

Return 1;

}

Return 0;

}

//调用语句

Int result=char_contains(“yang”,‘a’);

//使用while循环

①. While(i<strlen(str))

②. While(str[i]!=‘\0’)

③. While(str[i])

④. Int i=-1;while(str[i++])

三、字符串数组

二维字符数组,存储两个字符串数组,每个的长度为1,下面是两种写法但存储情况是一样的。

Char name[2][10]={“jack”,“rose”};

Char name2[2][10]={

{‘j’+‘a’+‘c’+‘k’+‘\0’},

{‘r’+‘o’+‘s’+‘e’+‘\0’}

}

把rose输出:printf(“%s”,name2[1]);

输出k:printf(“%c”,name2[0][3]);

时间: 2024-10-14 00:56:12

C语言字符串的相关文章

C语言字符串操作大全

转载自:C语言字符串操作总结大全(超详细) 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c)

C语言字符串处理库函数

http://blog.csdn.net/pipisorry/article/details/36898405 使用C语言字符串处理的库函数,务必包含头文件string.h,即#include <string.h> 1. 比较字符串大小函数   1) 忽略大小写---strcasecmp 函数原型: int strcasecmp (const char *s1, const char *s2); 函数说明: 用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异 2)忽略大小写-stric

C语言字符串函数大全

转载自http://www.360doc.com/content/08/0723/22/26860_1462024.shtml# 函数名: stpcpy 功能: 拷贝一个字符串到另一个 用法: char *stpcpy(char *destin, char *source); 程序例: #include<stdio.h> #include<string.h> int main(void) { char string[10]; char *str1 = "abcdefghi

C语言——字符串长度的计算方法

C语言——字符串长度的计算方法 提示:(1)计算字符串长度时关键是要注意辨认转义字符:(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成.所以,遇到反斜杠时要特别注意!!! 1.不带转义字符的字符串   如:“abc!x=/”,其长度为 7   2.带转义字符的字符串   (1) 字符串“abc\n”:其中的'\n'为转义字符(换行符),计算字符串长度时只能计作一个字符,所以该字符串的长度为4(而不是5)   (2) 字符串“abc\n\\\'\"":其中有4个转义字符:'\n'

转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 作者:jcsu C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. 字符串转化为整数 - atoi4. 字符串求长 - strlen5. 字符串连接 - strcat6. 字符串比较 - strcmp7. 计算字符串中的元音字符个数8. 判断一个字符串是否是回文1. 写一个函数实现字符串反转 版本1 - while版 void strRev(char *s){    

C语言 字符串和数字转换函数

atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include <stdlib.h> 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回.参数nptr字符串可包含正负号.小数点或E(e)来表示指数部分,如123.456或123e-2.

C语言字符串处理函数

函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) {    char string[10];    char *str1 = "abcdefghi";    stpcpy(string, str1);    printf("%sn&

C 语言 字符串命令 strstr()的用法 实现将原字符串以分割串分割输出【转】

本文转载自;http://www.cnblogs.com/easyfrog/archive/2011/12/26/C_strstr_split_string.html C 语言 字符串命令 strstr()的用法 实现将原字符串以分割串分割输出 strstr() 命令是在原字符串中查找指定的字符串第一次出现的地址,用这个特性可以实现字符的分割,判断是否包涵等功能: 下面的这个例子是实现 字符串以分割串分割输出: 1 #include <stdio.h> 2 #include <strin

OC学习将C语言字符串转换为OC字符串

将C语言字符串转换为OC字符串 1 /** 2 * inputNSString:自定义函数 3 */ 4 #import <Foundation/Foundation.h> 5 /** 6 * 将C语言字符串转换为OC语言字符串 7 * @return OC语言字符串 8 */ 9 NSString *inputNSString(){ 10 char arr[256];//假定数组长度为256 11 char ch; 12 int length=0; 13 //while ((ch=getch

C语言字符串声明

重新学习C语言字符串声明char *a="nihao";char a[]="nihao";什么区别?前者定义的是指针,并且指向字符串常量“nihao”,后者是字符串数组.区别在于,char * a = "nihao"的话,a指针本身是可以变化的,如a = "123",但对字符串常量进行操作是不行的,如,a[0] = '1'是非法的.char a[] = "nihao"表示字符数组初始化为"niha