Aseeker 发表于 2020-2-10 14:58:33

大神求救

本帖最后由 Aseeker 于 2020-2-10 15:03 编辑

#include <string.h>
#include <stdio.h>
void fun( char s[],int c)
{
        int i,j,len=strlen(s);
        for(i=0;i<len;i++)
        {
                if(s==c)
                {
                        for(j=i;j<len;j++)
                        {
                                s=s;
                        }
                }
                s='\0';//为什么在这里的j是未赋值,而不是等于len ,我知道这句不用加,没有用
        }
}
void main()
{
static char str[]="turbo c and borland c++";
char ch;
FILE *out;
printf ("原始字符串:%s\n ",str);
printf("输入一个字符串:\n");
scanf("%c",&ch);
fun(str,ch);
printf("str[]=%s\n",str);
strcpy(str,"turbo c and borland c++");
fun(str,'a');
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%s",str);
fclose(out);
/******************************/
system("pause");
}

qiuyouzhi 发表于 2020-2-10 16:37:43

代码先看看能不能正确运行

Aseeker 发表于 2020-2-10 19:53:12

qiuyouzhi 发表于 2020-2-10 16:37
代码先看看能不能正确运行

删除那句就可以
我只是想问问那句 j 为什么会是提醒未赋值

alexw_h264 发表于 2020-2-10 20:17:58

原因为:
1. j在定义阶段没有初始化值
2. 条件if(s==c) 没有成立,导致j没有赋值。

qiuyouzhi 发表于 2020-2-11 08:25:26

Aseeker 发表于 2020-2-10 19:53
删除那句就可以
我只是想问问那句 j 为什么会是提醒未赋值

因为后面那个j不在定义j的for循环里
这就是变量的作用域
页: [1]
查看完整版本: 大神求救