C语言——字符串相关函数的使用,二维数组(整型,字符型)
发布时间:2026/9/23 23:31:33 作者:尧图编辑部 阅读量:1,286
)
一般使用字符串时可能需要达到以下几个目的,1获得字符串的长度 2把一个字符串的内容复制到另一个字符串 3把一个字符串内容拼接到另一个字符串 。这些操作如何实现呢首先使用字符串相关函数要加上头文件(#includestring.h)一获取字符串长度1下面是手搓获取字符串长度的代码通过一个循环累加字符的个数#includestdio.h int main(void) { char str[10]; printf(str ); gets(str); int len 0; while(str[len] ! \0) //获取字符串有效长度截至到结束符 { len; } printf(while计算长度 %d\n, len); return 0; }2接下来引进一个函数的使用即strlen以下是它的介绍3,具体使用的代码如下可以直接获取字符串的有效长度。举例假设cnt strlen(str1) cnt是有效字符数量不含 \0 看下面代码strlen(str)直接表示有效字符数不含\0#includestdio.h #includestring.h int main(void) { char str[10]; printf(str ); gets(str); size_t len strlen(str); printf(strlen得到长度 %zu\n, len); return 0; }二复制一个字符串的内容到另一个字符串1下面是手搓复制字符串的代码通过一个循环复制每一个字符#include stdio.h int main(void) { char s1[] hello; char s2[20]; int i 0; while(s1[i] ! \0) { s2[i] s1[i]; i; } s2[i] \0; //因为前面复制的每个字符都是有效字符所以要这一步补上结束符号 printf(s2 %s\n, s2); return 0; }2,接下来引进一个函数的使用即strlen以下是它的介绍3,使用情况如下#include stdio.h #include string.h int main(void) { char str1[] hello; char str2[10]; strcpy(str2, str1); puts(str2); return 0; }三拼接一个字符串的内容到另一个字符串后面1下面是手搓拼接字符串的代码通过一个循环拼接每一个字符#include stdio.h #include string.h int main(void) { char str1[20] hello; char str2[] world; int cnt strlen(str1); //把str1的长度赋值给cnt int i 0; for(i; i strlen(str2); i) { str1[cnt i] str2[i]; //从str1的\0位置开始覆盖为str2的字符 } str1[cnt i] \0; //最后给拼接后的字符串加上结束符 puts(str1); return 0; }2,接下来引进一个函数的使用即strlen以下是它的介绍3,使用情况如下#include stdio.h #include string.h int main(void) { char str1[20] hello; //拼接操作要保证被拼接的数组足够长以保证不越界 char str2[] world; strcat(str1,str2); //后面的字符串被拼到前面的字符串之后 puts(str1); return 0; }四字符间比大小的规则如遇到“hello”和“hell”这时候“hell”已经停了因为最终比的结果是停了的位置上的两个字符的大小所以是o和“\0”比较比较停止的条件即s1[i] ! s2[j] || s1[i] \0 || s2[j] 0比较结果规则1以下是手搓比较字符串大小的代码#include stdio.h int main(void) { char str1[] hello; char str2[] hell; int i 0, j 0; while(str1[i] ! \0 str2[j] ! \0 str1[i] str2[j]) //判断条件也可以都反过来但是就要用||了 { i; j; } if(str1[i] str2[j]) { printf(%s %s\n,str1,str2); } else { printf(%s %s\n,str1,str2); } return 0; }2以下是用函数比大小的代码#include stdio.h #include string.h int main(void) { char s1[10]; char s2[10]; printf(shuru ); gets(s1); printf(shuru ); gets(s2); printf(return %d,strcmp(s1,s2)); //输出的结果是s1那个字符与s2不同的字符间的阿西科玛差值 return 0; }五整型二维数组二维数组是包含关系一个二维数组看成一个特别的一维数组这个一维数组的每一个元素都是一个数组例如C语言二维数组 int a[3][4] 可以看成a 是一维数组一共有3个元素每一个元素本身又是一个长度为4的一维数组二维数组的不同初始化情况六字符型二维数组一维字符型数组里每个元素是一个字符整个数组是一个字符串二维字符型数组里每个元素是一个一维字符型数组(即一个字符串)二维数组打印字符串只要外层数组就好了如果加上内层就是打印那个字符串里的某个字符看下面代码#include stdio.h int main(void) { char s[5][10] {hello,world,china,english,america}; //printf(s[0] %s\n,s[0]); //printf(s[0][0] %c\n,s[0][0]); int i; for (i 0; i 5; i) { printf(s[%d] %s\n,i,s[i]); } return 0; }这是二维字符数组每一行存一个字符串。打印结果如下s[0] hellos[1] worlds[2] chinas[3] englishs[4] america