本文通过讲解洛谷中珠心算测验的解题思路带编程小白了解C语言算法同时会介绍一些函数知识和字符的使用方法希望大家能够通过这篇文章学到更多编程知识从而可以更好地运行代码。一、函数名称及作用string.h 常用函数函数 作用strlen() 求字符串长度strcpy() 字符串复制strncpy() 指定长度复制strcat() 字符串拼接strncat() 指定长度拼接strcmp() 比较两个字符串strncmp() 比较前几个字符strchr() 查找某个字符strstr() 查找某个字符串strcspn() 查找字符串中某类字符第一次出现的位置ctype.h 常用函数tolower() 转小写toupper() 转大写isalpha() 是否为字母isdigit() 是否为数字isalnum() 是否为字母或数字isspace() 是否为空白字符islower() 是否为小写字母isupper() 是否为大写字母ispunct() 是否为标点符号二、珠心算解题思路https://www.luogu.com.cn/problem/P2141#includestdio.h#includestring.hintmain(){intn;scanf(%d,n);intarr[n];intnumArr[100000]{0};//设置数组默认值为0for(inti0;in;i){scanf(%d,arr[i]);numArr[arr[i]]i1;//把输入数字当作numArr数组的下标在对应位置存入非零数字0是false非零数字是true同时也是输入数字的下标}intflag[100000]{0};//标记Arr数组中两个数字和是否存在for(inti0;in;i){for(intji1;jn;j){intsumarr[i]arr[j];//将Arr数组中的数字相加计算数字和if(numArr[sum]){//把两个数字和当做num数组的下标如果返回值是非零数字就说明当前和能找到对应的数字flag[numArr[sum]-1]1;//在flag数组中标记两个数字和存在对应数字}}}intcount0;//计算存在的和的个数for(inta0;an;a){if(flag[a]){count;}}printf(%d,count);return0;}三、字符的使用字符的输入1.scanf(“%s” , str);注必须输入一句完整的字符而且是连续的不能用空格2.fgets(str , sizeof(str) , stdin);注输入的字符内容可以包含空格格式fgets字符数组数据长度数据源头stdin控制台输入数据字符长度计算int len strlen(str);四、个人收获总结通过这道题目我深入学习并掌握了数组和嵌套循环的使用同时对C语言算法分析也有了进一步的认识还了解了函数和字符的有关知识这次学习对我进一步了解C语言算法有很大的帮助也让我在一行行代码中深入理解编程的意义和作用在一次次改进中不断完善也希望这篇文章对大家有帮助。