编写一个程序用键盘输入一段字符串存入s1中并将s1中的字符串复制到字符数组s2中不用strcpy。4用函数调用的方式写一个函数将2个字符串连接成一个字符串。提示:使用字符串数组5编写一个含有静态局部变量的程序并解释静态局部变量和自动局部变量的区别
- 代码实现:
#include <stdio.h>
int main() { char s1[100], s2[100]; int i = 0; printf("请输入一段字符串:\n"); while ((s1[i] = getchar()) != '\n') { i++; } s1[i] = '\0'; for (int j = 0; s1[j] != '\0'; j++) { s2[j] = s1[j]; } printf("复制后的字符串为:%s\n", s2); return 0; }
- 代码实现:
#include <stdio.h> #include <string.h>
void concat(char s1[], char s2[], char result[]) { int i = 0, j = 0; while (s1[i] != '\0') { result[i] = s1[i]; i++; } while (s2[j] != '\0') { result[i + j] = s2[j]; j++; } result[i + j] = '\0'; }
int main() { char s1[100], s2[100], result[200]; printf("请输入第一个字符串:\n"); scanf("%s", s1); printf("请输入第二个字符串:\n"); scanf("%s", s2); concat(s1, s2, result); printf("连接后的字符串为:%s\n", result); return 0; }
- 静态局部变量和自动局部变量的区别在于生命周期和作用域。静态局部变量在程序运行期间只被初始化一次,保留在静态存储区中,其作用域仅限于定义它的函数内部,但其值在函数调用结束后不会被销毁,下次调用该函数时会保留上一次的值。自动局部变量在函数被调用时被创建,函数结束时被销毁,其作用域也仅限于定义它的函数内部。
原文地址: http://www.cveoy.top/t/topic/b375 著作权归作者所有。请勿转载和采集!