C语言小技巧:字符串操作与递归函数

需积分: 10 0 下载量 55 浏览量 更新于2024-09-08 收藏 7KB TXT 举报
"C语言基础知识与常见函数用法" 在C语言中,字符串处理是一部分重要的内容。`strcpy()`函数用于复制一个字符串到另一个字符串,它会将源字符串(包括终止符`\0`)完全复制到目标字符串。需要注意的是,目标字符串必须足够大以容纳源字符串的所有字符,否则可能导致内存溢出。 `strcat()`函数则用于连接两个字符串,它会将源字符串追加到目标字符串的末尾。同样,目标字符串要有足够的空间,否则会覆盖相邻的内存区域。使用`gets()`和`puts()`函数时要谨慎,因为`gets()`不检查缓冲区大小,可能会导致溢出,而`puts()`会自动添加`\n`字符。 字符串比较通常用`strcmp()`函数,它会逐个比较两个字符串的字符,直到遇到不同的字符或遇到`\0`为止。返回值根据比较结果决定:0表示两个字符串相等,负值表示第一个字符串小于第二个,正值表示第一个字符串大于第二个。 转换字符串大小写,C库提供了`strupr()`和`strlwr()`函数,分别用于将字符串转换为大写和小写。`strlen()`函数则是计算字符串的长度,它返回从字符串起始位置到`\0`之间的字符数。 在算法方面,这里展示了一个求最大公约数(GCD)的递归函数`gys()`,使用了欧几里得算法。在主函数`main()`中,接收用户输入的两个整数,然后调用`gys()`函数计算并输出它们的最大公约数。 此外,C程序可以接受命令行参数,通过`main()`函数的`argc`和`argv`参数获取。`argc`是命令行参数的数量(包括程序名本身),`argv`是一个指向参数字符串数组的指针。在示例中,如果参数数量不是3,程序会提示需要三个参数;否则,它会打印出前两个参数的字符。 在变量存储类型上,`static`关键字用于声明静态变量,这样的变量在程序运行期间只被初始化一次,并且其生命周期贯穿整个程序。`extern`用于声明变量是在其他文件中定义的,提供全局访问。`auto`和`register`是局部变量的存储类别,`auto`是默认的,`register`尝试将变量存储在寄存器中以提高效率,但编译器并不保证一定能实现。 指针操作是C语言中的核心概念,`&`是取地址运算符,用于获取变量的内存地址,`*`是解引用运算符,用于访问指针所指向的变量的值。对于二维数组,可以通过指针进行访问,例如`p=a[0]`获取第一行的首地址,`p++`则移动到下一个元素。 这段内容涵盖了C语言中的字符串处理、函数、基本算法、变量存储类型以及指针操作等多个基础知识点。学习C语言时,理解并熟练运用这些知识点是非常关键的。