| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 770 人关注过本帖
标题:命令行参数程序,帮忙看一下第三种情况哪里有错误?
只看楼主 加入收藏
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
结帖率:92%
收藏
已结贴  问题点数:20 回复次数:2 
命令行参数程序,帮忙看一下第三种情况哪里有错误?
这个程序运行后的情况应该是:
                          argv[1]是"+2"时,输出字符串的前两个字符
                          argv[1]是"-3"时,输出字符串的后三个字符
                          其他情况默认输出字符串的后10个字符
问题:前两种情况都能正确输出,为什么第三种情况不行?
         代码和运行结果如下

#include<stdlib.h>
#include<stdio.h>
#define N 20
int main(int argc,char *argv[]){
  char s[N];
  int i=0,j,n;
  printf("Entrez une chaine de caracteres : ");    /* 输入一个字符串 */
  scanf("%c",&s[i]);
  while(s[i]!='\n') scanf("%c",&s[++i]);
  n=*(argv[1]+1)-'0';
  if(argv[1][0]=='+'){
    for(j=0;j<n;j++) printf("%c",s[j]);
  }
  else if(argv[1][0]=='-'){
    for(j=i-n;j<i;j++) printf("%c",s[j]);
  }
  else{
    for(j=i-10;j<i;j++) printf("%c",s[j]);
  }
  printf("\n");
  return EXIT_SUCCESS;

}


运行结果:
linux@ubuntu:~$ ./exercice +2
Entrez une chaine de caracteres : exercice
ex
linux@ubuntu:~$ ./exercice -3
Entrez une chaine de caracteres : exercice
ice
linux@ubuntu:~$ ./exercice
Entrez une chaine de caracteres : exerciceaaaa
Segmentation fault (core dumped)      
                                 
搜索更多相关主题的帖子: 输出 字符串 printf for ubuntu 
2018-04-22 15:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:20 
第三种情况下,n=*(argv[1]+1)-'0'; 中 argv[1] 你认为应该是多少?
2018-04-23 08:27
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
收藏
得分:0 
啊明白了,谢谢大佬,应该加一个if语句,在里面给n赋值。
2018-04-23 21:38
快速回复:命令行参数程序,帮忙看一下第三种情况哪里有错误?
数据加载中...
 
   



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

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