【问题标题】:simple encode using c by substract char使用 c 减去 char 进行简单编码
【发布时间】:2016-12-30 22:10:03
【问题描述】:

我在我的程序中使用 c 语言(我的实践)。如果我在每个变量中使用 1 个字符串,则此代码有效。但是,当我使用字符串数组(二维变量)时, str2[x] (第二个字符串)没有被编码,只有 str1[x] & str3[x] 。

这是我的代码(我通过在这里浏览获得此代码):

#include<stdio.h>
#include<conio.h>

char *encode(char *str){
  int i=0;
  while(str[i]!='\0'){
    str[i]=str[i]-18;
    i++;
  }
  return str;
}

int main(){
  int i,n;
  char str1[50][50],str2[50][50],str3[50][50];

  printf("How many data: ");
  scanf("%d",&n);
  for(i=0;i<n;i++){
    printf("String 1: ");
      scanf("%s",str1[i]);
    printf("String 2: ");
      scanf("%s",str2[i]);
    printf("String 3: ");
      scanf("%s",str3[i]);
  }
  for(i=0;i<n;i++){
    printf("index-%d: %s - %s - %s\n",i,encode(str1[i]),encode(str2[i]),encode(str3[i]));
  }
  return 0;
}

例如,我输入了 2 个数据。

第一个输入:"Test1", "Test2", "Test3" 第二个输入:"Test4", "Test5", "Test6"

index-0 的输出,例如:index-0: BSab[ - - BSab!(跳过第二个进程)并且 index-1 没有输出,因为进程已停止,我不知道为什么。

【问题讨论】:

  • 在这里工作:ideone.com/zgcZbC。你是如何设置字符串的?
  • 这很奇怪,当我在分享我的问题之前尝试此代码时,我总是失败。但是,现在它的工作。好的,谢谢你的回答。

标签: c encode


【解决方案1】:

你正在做fflush(stdin);,即undefined behavior

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 2022-06-11
    • 2020-08-12
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    相关资源
    最近更新 更多