C++指针问题,急啊

来源:百度知道 编辑:UC知道 时间:2024/06/02 18:25:42
各位大虾帮个忙,小弟的一个程序编译通过,可是出现debug assertion failed,网上说是指针问题。这是我的程序,帮我瞧瞧,不胜感激。#include <string.h>
#include <stdio.h>
#include <ctype.h>
#define N 81
void readwriteDAT();

void chg(char *s)
{
int i,k;
k=strlen(s);
for(i=0;i<k;i++)
{if(s[i]=='z'||s[i]=='Z' )
s[i]-=25;
else if(isalpha(s[i]))
s[i]+=1;
}
}

void main()
{
char a[N];
//clrscr();
printf(" Enter a string:" );gets(a);
printf(" The original string is;");puts(a);
chg(a);
printf(" The string after modified:" );
puts(a);
readwriteDAT();
}

void readwriteDAT()
{
int i;
char a[N];
FILE *rf,*wf;

rf=fopen(" in.txt" ,"r" );
wf=fopen(" out.txt" ," w" );
for(i=0;i<10;i++){
fscanf(rf,"%s",a);
chg(a);
fprintf(

第一:
rf=fopen(" in.txt" ,"r" );
wf=fopen(" out.txt" ," w" );
问题很简单。。。 你的文件名字符串前的空格要去掉,
还有 “ w” 前 的 空格也是多余的.
第二:
main函数和readwriteDAT函数中的char a[N]要进行初始化
具体代码如下(运行通过)

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 81
void readwriteDAT();

void chg(char *s)
{
int i,k;
k=strlen(s);
for(i=0;i<k;i++)
{if(s[i]=='z'||s[i]=='Z' )
s[i]-=25;
else if(isalpha(s[i]))
s[i]+=1;
}
}

int main()
{
char a[N];
for(int i = 0; i < N; ++i)
{
a[i] = '\0';
}
//clrscr();
printf(" Enter a string:" );gets(a);
printf(" The original string is;");puts(a);
chg(a);
printf(" The string after modified:" );
puts(a);
readwriteDAT();
}

voi