c语言中字符数组的函数,C语言字符串和字符数组

c语言计算字符数组的长度

1、在c语言中,可以通过库函数strlen来计算字符串的长度,也可以通过循环计数来求取字符串长度。

创新互联是一家集网站建设,城东企业网站建设,城东品牌网站建设,网站定制,城东网站建设报价,网络营销,网络优化,城东网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

函数原型:unsigned

int

strlen(char

*str);

能:统计字符串str中字符的个数,不包含'\0'

值:返回字符个数

2、用strlen函数实现:

char str[20];

int len; // 保存数组的长度

scanf("%s", str);

len = strlen(str); // 计算字符数组str的长度

注:需将头文件#include

添加进源文件中。3、用循环来实现:

char str[20];

int len=0; // 保存数组的长度

scanf("%s", str);

while(str[len] != '\0') // 未检测到结束字符

{

len++; // 统计字符数组str的长度

}

c语言,字符数组函数

#include stdio.h

/*比较两个字符串*/

/*src、dst相等 return 1*/

/*src比dst短 return -2*/

/*src比dst长 return 2*/

/*src、dst长度一致但不相等 return -1*/

int stringCmp (char *src, char *dst) {  

if (strlen (src)  strlen (dst))

return -2;

else if (strlen (src)  strlen (dst))

return 2;

else {

while (*src  *dst) {

if (*src != *dst)

return -1;

src++;

dst++;

}

return 1;

}

}

/*合并两个字符串*/

void mergeString(char* str1, char* str2, char* merge) {

while (*merge++ = *str1++); /*复制str1并将指针移动到字符串的末尾的下一个位置*/

merge--; /*退到字符串的末尾*/

while (*merge++ = *str2++); /*从末尾(\0)的位置开始将str2拷贝进来*/

*merge = '\0';

}

int main(void) {

char *str1_1="hel",*str1_2="lo", *merge1;

char *str2_1="ness",*str2_2="happy", *merge2;

char *str3_1="hi",*str3_2="hi", *merge3;

char *str4_1="hello",*str4_2="world", *merge4;

puts ("第1组字符串:");

puts (str1_1);

puts (str1_2);

if (stringCmp (str1_1, str1_2) == 1)

puts (str1_1);

else if (stringCmp (str1_1, str1_2) == -2) {

mergeString (str1_2, str1_1, merge1);

puts (merge1);

}

else if (stringCmp (str1_1, str1_2) == 2 || stringCmp (str1_1, str1_2) == -1) {

mergeString (str1_1, str1_2, merge1);

puts (merge1);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

puts ("第2组字符串:");

puts (str2_1);

puts (str2_2);

if (stringCmp (str2_1, str2_2) == 1)

puts (str2_1);

else if (stringCmp (str2_1, str2_2) == -2) {

mergeString (str2_2, str2_1, merge2);

puts (merge2);

}

else if (stringCmp (str2_1, str2_2) == 2 || stringCmp (str2_1, str2_2) == -1) {

mergeString (str2_1, str2_2, merge2);

puts (merge2);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

puts ("第3组字符串:");

puts (str3_1);

puts (str3_2);

if (stringCmp (str3_1, str3_2) == 1)

puts (str3_1);

else if (stringCmp (str3_1, str3_2) == -2) {

mergeString (str3_2, str3_1, merge3);

puts (merge3);

}

else if (stringCmp (str3_1, str3_2) == 2 || stringCmp (str3_1, str3_2) == -1) {

mergeString (str3_1, str3_2, merge3);

puts (merge3);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

puts ("第4组字符串:");

puts (str4_1);

puts (str4_2);

if (stringCmp (str4_1, str4_2) == 1)

puts (str4_1);

else if (stringCmp (str4_1, str4_2) == -2) {

mergeString (str4_2, str4_1, merge4);

puts (merge4);

}

else if (stringCmp (str4_1, str4_2) == 2 || stringCmp (str4_1, str4_2) == -1) {

mergeString (str4_1, str4_2, merge4);

puts (merge4);

}

putchar ('\n');

puts ("======================================================");

putchar ('\n');

getch (); /*屏幕暂留*/

return 0;

}

运行结果

C语言中字符数组及字符串处理函数

一、字符数组的定义

一维字符数组:用于存储和处理1个字符串,其定义格式与一维数值数组一样。

char str[20];

二维字符数组:用于同时存储和处理多个字符串,其定义格式与二维数值数组一样。

char country[10][20];

country[i]:第i个字符串

二.字符数组的初始化

字符数组的初始化.

1.可以通过为每个数组元素指定初值字符来实现。

char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};

char str[ ]={"I am happy"}; 可以省略花括号,如下所示

char str[ ]="I am happy";

char country[10][20]={“china”,”japanese”,……};

注意:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的

char str[15];

str="I am happy";

strcpy(str, "I am happy");

不是用单个字符作为初值,而是用一个字符串(注意:字符串的两端是用双引号“”而不是单引号‘’括起来的)作为初值。

‘a’ “a”区别

三、字符数组的引用

字符数组的逐个字符引用,与引用数值数组元素类似。

(1)字符数组的输入

除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()或scanf()函数输入字符。

例如:

char str[10];

…… for(i=0; i10; i++)

{ scanf(\"%c\", str);

fflush(stdin); /*清除键盘输入缓冲区*/

}

这里只是一部分具体你查看这里:


当前文章:c语言中字符数组的函数,C语言字符串和字符数组
文章起源:http://myzitong.com/article/hdchcj.html