将所接收的字符串数组中储存的n个字符串的字符逆向输出
本帖最后由 ifuchuan 于 2021-6-26 20:53 编辑#include <stdio.h>
#define NUMBER128
#define ELEMENT 2
void rev_string(char s[],int n)
{
int i=0;
int j=0;
int num=0;
char t;//这个数组的作用是什么?
for(i=0; i<n; i++)
{
while(s!='\0')
{
num++;
j++;
}
for(j=0; j<num; j++)
{
t=s;//这句作用是啥?
}
for(j=0; j<num; j++)
{
s=t;
}
}
return;
}
int main(void)
{
char str;
int i=0;
printf("请输入字符串:");
printf("\n");
for(i=0; i<ELEMENT; i++)
{
printf("str[%d]",i);
scanf("%s",str);
}
rev_string(str,ELEMENT);
printf("该字符串颠倒后为:\n");
for(i=0; i<ELEMENT; i++)
{
printf("%s\n",str);
}
printf("\n");
}
楼主的代码有问题,VS2017环境下编译不通过。我做出了一些修改。
#include <stdio.h>
#define NUMBER128
#define ELEMENT 2
void rev_string(char s[], int n)
{
int i = 0;
int j = 0;
int num = 0;
char t;//这个数组的作用是什么? 答:做缓冲区。
for (i = 0; i < n; i++)
{
while (s != '\0')
{
num++;
}
for (j = 0; j < num; j++)
{
t = s;//这句作用是啥?答:(反向存储)将s数组第i行的数据,从最后一个开始依次传递给缓冲区t数组
}
for (j = 0; j < num; j++) //用缓冲区的数据把s数组原有的数据给覆盖掉。
{
s = t;
}
}
return;
}
int main(void)
{
char str;
int i = 0;
printf("请输入字符串:");
printf("\n");
for (i = 0; i < ELEMENT; i++)
{
printf("str[%d] = ", i);
scanf_s("%s", str, NUMBER-1);
}
rev_string(str, ELEMENT);
printf("该字符串颠倒后为:\n");
for (i = 0; i < ELEMENT; i++)
{
printf("%s\n", str);
}
printf("\n");
} 实在是听不懂
页:
[1]