备战2022蓝桥杯每日三题(5)

字符串几个函数的细致注意点
哈哈。。。前几天才写字符串函数的注意点 现在又不会 没关系 继续学fu的

写一函数,使输入的一个字符串按反序存放,在主函数中输入并输出反序后的字符串 不包含空格
输入
一行字符
输出
逆序后的字符串
样例输入
123456abcdef
样例输出
fedcba654321

首先 让我们再来学习一下 字符串的函数 直接 哭
gets() puts() strlen()
前两个是在头文件stdio.h中 后一个是在string.h中
用法如下:
gets():与scanf("%s",s)相似
区别在于:使用scanf("%s",s) 函数输入字符串时 如果输入了空格会认为字符串结束 空格后的字符将作为下一个输入项处理 但gets()函数将接收输入的整个字符串直到遇到换行为止
puts(): puts 和 printf的用法一样,puts()函数的作用与语句“printf("%s\n",s);的作用相同。(puts在输出字符串后会自动输出一个回车符)
strlen():使用格式strlen(s)返回s的长度,不包括结束符NULL。

#include<stdio.h>
#include<string.h>
 
void exchange(char a[],char b[])
{
    
    
    int i,l,j = 0;
    l = strlen(a);
    for(i=l-1; i>=0; i--){
    
    
        b[j] = a[i];
        j++;
    }
    b[j] = '\0';       //给末尾加上结束符 在将数组a的值赋给b数组之后 不然会出现乱码 这是因为在将a的值赋给b的过程中并非是所有元素都有赋值 并且末尾没有结束符,而puts()输出字符串时要遇到'\0’也就是字符结束符才停止 
}
 
int main()
{
    
    
    char a[1000],b[1000];//没有指定大小 后面运行不出来 希望有人看到 然后指教指教
    gets(a);
    exchange(a,b);
    puts(b);
    return 0;
}

字符串还是有很多盲区

猜你喜欢

转载自blog.csdn.net/m0_52773286/article/details/120923673