将一个字符串str的内容颠倒过来,并输出。
1. 字符串存储方式
1 使用字符数组:
char str[8000];//[字符个数]
2 使用字符指针:
char* str;
int size = 0; //size指输入字符的最大数
2、strlen
strlen是用来计算字符串长度的,返回值是size_t
3. 字符串的输入
1 使用scanf输入:
char str[8000];//[字符个数]
scanf("%s\n",str)//这里不用&是因为数组名是首元素地址
2 使用fgets函数输入:
fgets函数用于从指定的文件流中读取一行字符串。
函数原型:char *fgets(char *str, int n, FILE *stream);
参数介绍:
'\0'
)。注意事项:
代码演示:
fgets(str, n, stdin);
size_t len = strlen(str);
//检查字符串末尾的字符(即下标为 len - 1 的字符)是否为换行符。
//如果是的话,就将它替换为\0
if (str[len - 1] == '\n')
{
str[len - 1] = '\0';
}
1.字符串在内存的存储与输入:
字符数组:
char str[8000];
fgets(str, 8000, stdin);
size_t len = strlen(str);
if (str[len - 1] == '\n')
{
str[len - 1] = '\0';
}
注意:这里8000是为了能够确保提供的字符数组 str 有足够的空间来存储读取的字符串
关于字符指针这个方法后面再说,今天这道题存储和输入就使用字符数组吧!
2.获取字符串长度
size_t len = strlen(str)
3.调用函数con
cont(str,len);
两个参数:str数组名,len字符串长度
void cont(char* str, size_t len) //指针接收
4.字符串逆序实现
1.使用for循环
for (int i = len - 1; i >= 0; i--)//从后向前打印每一个字符串
{
printf("%c", str[i]);
}
2.使用while实现
char* begin = str;
char* end = str + strlen(str) - 1;
while (begin < end)
{
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
1. main函数
int main()
{
char str[8000];
fgets(str, 8000, stdin);
size_t len = strlen(str);
if (str[len - 1] == '\n')
{
str[len - 1] = '\0';
}
cont(str,len);
printf("%s\n", str);
return 0;
}
2. con函数
法1:
void cont(char* str,size_t len)
{
//size_t len = strlen(str);
for (int i = len - 1; i >= 0; i--)
{
printf("%c", str[i]);
}
}
法2:
void cont(char* str, size_t len)
{
char* begin = str;
char* end = str + strlen(str) - 1;
while (begin < end)
{
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
第一种:
#include <stdio.h>
#include <string.h>
void cont(char* str,size_t len)
{
//size_t len = strlen(str);
for (int i = len - 1; i >= 0; i--)
{
printf("%c", str[i]);
}
}
int main()
{
char str[8000];
fgets(str, 8000, stdin);
size_t len = strlen(str);
if (str[len - 1] == '\n')
{
str[len - 1] = '\0';
}
cont(str,len);
return 0;
}
第二种:
#include <stdio.h>
#include <string.h>
void cont(char* str, size_t len)
{
char* begin = str;
char* end = str + strlen(str) - 1;
while (begin < end)
{
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
int main()
{
char str[8000];
fgets(str, 8000, stdin);
size_t len = strlen(str);
if (str[len - 1] == '\n')
{
str[len - 1] = '\0';
}
cont(str,len);
printf("%s\n", str);
return 0;
}
结果展示:
标题名称虽然是每日一题,但是有时候小编虽然题目写了,但是没有整理,就来不及发文章了,所以没法做到每日一篇,还请见谅!下期再见!!!