标题:code blocks 写的不能运行 错误叫permission denied
只看楼主
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
结帖率:58.82%
已结贴  问题点数:20 回复次数:24 
code blocks 写的不能运行 错误叫permission denied
程序是用来除掉一串字符前面和后面的空白符的,中间的不动,貌似是加了前面的char str1和最后的if语句之后就没法打开了,之前也遇见过一次,忘了是怎么解决的。。
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
    int i,j,count,temp;
    char str[101],str1[4];
    str1[0]='E';
    str1[1]='N';
    str1[2]='D';
    str1[3]='\0';
    while (gets(str)!=NULL)
    {
        for (count=0;;)
        {
            if (str[count]!='\0')
                count++;
            else
                break;
        }
        for (i=0;; i++) //zheng xiang.
        {
            temp=isspace(str[i]);
            if (temp!=8)
                break;
        }
        for (j=0;;)//qv kongbai fu
        {
            str[j]=str[i];
            i++;
            j++;
            if (str[j]=='\0')
            {
                count=j;
                break;
            }
        }
        for (i=j-1;; i--)//ni xiang qv kongbai
        {
            temp=isspace(str[i]);
            if (temp!=8)
            {
                str[i+1]='\0';
                break;
            }
        }
        printf("%s\n",str);
        if (strcmp(str,str1)==0)
        return 0;
    }
    return 0;
}



求解啊。。。。
搜索更多相关主题的帖子: permission 
2012-12-07 00:29
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
得分:0 
新建了个工程,已经好了。

改了下代码,把char str1去掉了,改了下最后的if。

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
    int i,j,count,temp;
    char str[101];
    for (;;)
    {
        gets(str);
        for (count=0;;)
        {
            if (str[count]!='\0')
                count++;
            else
                break;
        }
        for (i=0;; i++) //zheng xiang.
        {
            temp=isspace(str[i]);
            if (temp!=8)
                break;
        }
        for (j=0;;)//qv kongbai fu
        {
            str[j]=str[i];
            i++;
            j++;
            if (str[j]=='\0')
            {
                count=j;
                break;
            }
        }
        for (i=j-1;; i--)//ni xiang qv kongbai
        {
            temp=isspace(str[i]);
            if (temp!=8)
            {
                str[i+1]='\0';
                break;
            }
        }
        printf("%s\n",str);
        if ((str[0]='E') && (str[1]='N') && (str[2]='D') && (str[3]='\0'))
            return 0;
    }
    return 0;
}


题目要求是当某行输入的非空白符仅为“END”结束,但我写的怎么就退不出来?
2012-12-07 00:40
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
得分:0 
回复 2楼 Sornets
明白了
2012-12-07 00:41
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
得分:0 
我把最后的=改成了==

但是当输入为“   END ”
就是三个空格END空格时还是退不出来  我去
2012-12-07 00:45
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
得分:0 
给跪。。。大神们别光看啊。。。急死了。。。
2012-12-07 00:59
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
题目要求是当某行输入的非空白符仅为“END”结束,但我写的怎么就退不出来?
这不是就是要求输入END码 干嘛还要加3个空格呢

DO IT YOURSELF !
2012-12-07 08:15
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
得分:0 
以下是引用wp231957在2012-12-7 08:15:56的发言:

题目要求是当某行输入的非空白符仅为“END”结束,但我写的怎么就退不出来?
这不是就是要求输入END码 干嘛还要加3个空格呢



非空白符仅为END  就是去掉空白后剩下的是end吧
2012-12-07 17:44
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
得分:0 
回复 6楼 wp231957
Description
在C语言中,将ASCII字符集中的制表符('\t')、回车符('\r')、换行符('\n')、垂直制表符('\v')、换页符('\f')和空格字符(' ')称作空白符。

你的任务是读入每行字符串,去掉行首和行尾的连续空白符,但是在任意非空白符中间的空白符不要去除。

Input
输入为多行,每行为一个串(不超过100个字符),至某行输入的非空白符仅为“END”结束。

Output
输出为多行,为每行输入的去掉前后空白符的串。“END”也输出。

Sample Input
 abcdefg
    12345678
XYZ
abc 123
   END
Sample Output
abcdefg
12345678
XYZ
abc 123
END
HINT

头文件ctype.h中有isspace函数对空白符进行检测,若一个字符为空白符之一则返回真。


Append Code


这是原题
2012-12-08 00:49
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
  if ((str[0]=='E') && (str[1]=='N') && (str[2]=='D') && (str[3]=='\0'))
等号是赋值语句 等等号才是比较语句

DO IT YOURSELF !
2012-12-08 07:14
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用Sornets在2012-12-7 00:45:26的发言:

我把最后的=改成了==
 
但是当输入为“   END ”
就是三个空格END空格时还是退不出来  我去
我这里可以退出的

DO IT YOURSELF !
2012-12-08 07:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-389966-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.642297 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved