如何解决尝试在不使用 C 中使用指针的 string.h 库函数的情况下反转字符串
中途返回并显示--进程返回-1073741819 (0xC0000005) 此代码也没有显示错误或警告。 只是想确切地知道为什么会这样?
#include<stdio.h>
void reverse(char*);
int main()
{
char str[200];
printf("Enter a string : ");
scanf("%s",&str);
reverse(str);
printf("Reversed string : %s",str);
}
void reverse(char *p)
{
char temp,*q;
*p=*q;
while(*p!='\0')
{
q++;
}
while(p<q)
{
temp=*p;
*p=*q;
*q=temp;
p++;
q--;
}
}
解决方法
你从未初始化过 q。它指向完全随机的东西。
修正为 char temp,*q = p;
是否按照回答进行了以下更改,并添加了使代码正常工作的更改。
#include<stdio.h>
void reverse(char*);
void main()
{
char str[20];
printf("Enter a string : ");
scanf("%s",&str);
reverse(str);
printf("Reversed string : %s",str);
}
void reverse(char *p)
{
char temp,*q=p;
while(*q!='\0')
{
q++;
}
q--;
while(p<q)
{
temp=*p;
*p=*q;
*q=temp;
p++;
q--;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。