c - void函数:将垃圾从数组变量返回到C中的main
问题描述
我需要一些帮助
我希望我的 void 函数显示正确的输出而不是垃圾,我仍然是当前程序的一半。我想知道是否
void expand(char r[7], char *eR){
// static char temp[10];
*(eR+0) = r[0];
*(eR+1) = r[1];
*(eR+2) = r[3];
*(eR+3) = r[2];
*(eR+4) = r[3];
*(eR+5) = r[2];
*(eR+6) = r[4];
*(eR+7) = r[5];
*(eR+8) = '\0';
printf("Expanded: %s",eR);
}
int main(){
char bitMessage[13],key[10],l[7],r[7],xResult,eR[9];
char *temp=eR;
int i;
char *fResult;
printf("Enter Message:");
scanf("%s",&bitMessage);
printf("Enter Key:");
scanf("%s",&key);
printf("Message is %s \n",bitMessage);
printf("Key is %s \n",key);
printf("\n\n");
printf("LEFT:");
for(i=0;i<6;i++){
printf("%c",bitMessage[i]);
}
printf("\n");
printf("RIGHT:");
for(i=6;i<12;i++){
printf("%c",bitMessage[i]);
}
printf("\n");
printf("Key:");
for(i=0;i<10-1;i++){
printf("%c",key[i]);
}
printf("\n\n");
expand(r,eR);
return 0;
}
请帮我解决这个问题,我还是编程新手
解决方案
您需要初始化r
和l
。我想你想要这个:
printf("LEFT:");
// Copy chars bitMessage 0-5 to l 0-5
for(i = 0; i < 6; i++){
l[i] = bitMessage[i];
printf("%c", l[i]);
}
printf("\n");
printf("RIGHT:");
// Copy chars bitMessage 6-11 to r 0-5
for(i = 6; i < 12; i++){
r[i - 6] = bitMessage[i];
printf("%c", r[i - 6]);
}
推荐阅读
- javascript - 如何保留 Angular 6 中可观察对象的原始响应?
- c# - 在 API 中抽象出对 IMemoryCache 的异步调用
- java - 在 char 数组中查找 'A' 的最长路径
- python - 如何将 Curl 的输出直接发送到 postgres 数据库
- sdk - 集会 SDK 2.1 迭代开始日期过滤器不匹配大于
- scala - 无法在 Intellij-IDEA 中获得 Scala 支持(尽管我之前已经做过十几次了)
- sql - 按找到的最后一个数字拆分字符串
- python - neo4j python language driver
- xpath - 使用 IMPORTXML 导入表
- symfony - symfony guard 身份验证器没有被调用