C语言实现输入包含空格的字符串并输出有效长度 - 代码解析
"C语言实现输入包含空格的字符串并输出有效长度 - 代码解析"\n\n本代码使用C语言实现了一个功能:从用户输入中获取包含空格的字符串,并将有效字符存储在字符数组中。代码同时计算并输出字符串的有效长度。\n\nc\n#include <stdio.h>\n#include <string.h>\n\nint main() {\n char str1[100];\n char str2[100];\n int len = 0;\n int i = 0;\n \n printf("请输入包含空格的字符,以回车结束输入:\n");\n while (scanf("%s", str2) != EOF) {\n int str2_len = strlen(str2);\n if (len + str2_len > 99) {\n break;\n }\n strcpy(str1 + len, str2);\n len += str2_len;\n str1[len++] = ' ';\n }\n \n str1[len-1] = '\0'; // 用空字符替换最后一个空格\n \n printf("输入的字符串为:%s\n", str1);\n printf("有效长度为:%d\n", len-1);\n \n return 0;\n}\n\n\n代码运行过程解释:\n\n1. 声明一个字符数组str1来存储输入的字符串,长度为100(假设输入的字符串不超过100个字符)。\n2. 声明一个字符数组str2来临时存储每次输入的字符串。\n3. 声明一个整型变量len来记录str1的有效长度。\n4. 使用printf函数提示用户输入包含空格的字符。\n5. 使用while循环来不断读取输入的字符串,直到遇到文件结束符(EOF,一般是按下Ctrl+Z或Ctrl+D)。\n6. 在循环中,首先使用scanf函数读取一个不包含空格的字符串到str2中。\n7. 使用strlen函数获取str2的长度,并将其存储到str2_len变量中。\n8. 判断len + str2_len是否超过99(99是因为还需要留一个位置存放最后一个空格或空字符),如果超过则跳出循环。\n9. 使用strcpy函数将str2的内容拷贝到str1中,起始位置为str1 + len。\n10. 更新len的值,加上str2_len,表示有效长度增加了str2_len个字符。\n11. 在str1的有效长度位置处加上一个空格,表示不同输入的字符串之间的分隔。\n12. 循环继续,直到遇到文件结束符。\n13. 在最后一个空格的位置处用空字符替换,使得str1成为一个以空字符结尾的字符串。\n14. 使用printf函数输出str1中的字符串。\n15. 使用printf函数输出str1的有效长度,即len-1(不包括最后一个空格)。\n16. 程序结束。\n\n代码示例:\n\n假设用户输入以下字符串:\n\nhello world\nthis is a test\n\n\n程序会输出以下结果:\n\n输入的字符串为:hello world this is a test\n有效长度为:24\n
原文地址: https://www.cveoy.top/t/topic/pVh8 著作权归作者所有。请勿转载和采集!