#include<stdio.h>
#include<Assert.h>
#include<windows.h>
size_t my_strlen(char*str)
{
assert(str != NULL);
int count = 0;
while (*str)
{
str++;
count++;
}
return count;
}
void reverse(char *left, char *right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
void reverse_arr(char *str)
{
int len = my_strlen(str);
reverse(str, str + len - 1);
while (*str)
{
char *left = str;
char *right = NULL;
while ((*str != ' ') && (*str != '\0'))
{
str++;
}
right = str - 1;
reverse(left, right);
if (*str == ' ')
{
str++;
}
}
}
int main()
{
char arr[] = "student a am i";
reverse_arr(arr);
printf("%s\n",arr);
system("pause");
return 0;
}
#include<Assert.h>
#include<windows.h>
size_t my_strlen(char*str)
{
assert(str != NULL);
int count = 0;
while (*str)
{
str++;
count++;
}
return count;
}
void reverse(char *left, char *right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
void reverse_arr(char *str)
{
int len = my_strlen(str);
reverse(str, str + len - 1);
while (*str)
{
char *left = str;
char *right = NULL;
while ((*str != ' ') && (*str != '\0'))
{
str++;
}
right = str - 1;
reverse(left, right);
if (*str == ' ')
{
str++;
}
}
}
int main()
{
char arr[] = "student a am i";
reverse_arr(arr);
printf("%s\n",arr);
system("pause");
return 0;
}

本文介绍了一个C语言程序,该程序实现了字符串及其单词的反转功能。通过自定义的my_strlen函数计算字符串长度,并使用reverse函数实现反转操作。此外,还提供了一个reverse_arr函数用于按单词反转整个字符串。代码中包含了主函数,用于演示如何使用这些自定义函数。
1597

被折叠的 条评论
为什么被折叠?



