#include "stdafx.h"
#include <stdio.h>
#include "iostream"
char s[100];
char s1[100];
int i = 0;
int i1 = 0;
int i2 = 0;
void populate();
void squeeze();
int main()
{
printf("Write something, hit enter and than write something again. Hit
enter to see result\n");
populate();
squeeze();
system("pause");
return 0;
}
void populate() // insert chars in two arrays
{
int c;
while ((c = getchar()) != '\n')
{
s[i] = c;
i++;
}
while ((c = getchar()) != '\n')
{
s1[i1] = c;
i1++;
}
}
void squeeze() // iterate the arrays to find if there are same chars
{
char s2[1000];
i = 0;
i1 = 0;
for (int r = 0; r <= s[i - 1]; r++)
{
for (int j = 0; j <= s1[i1 - 1]; j++)
{
if (s[r] == s1[j])
{
s2[i2] = s[r];
i2++;
}
}
}
for (int m = 0; m <= s2[i2 - 1]; m++) //print every element in s2[];
{
printf("%c", s2[m]);
}
}
我想为第一个数组s1
中的每个元素迭代第二个数组s
,并将重复项放在第三个数组s2
中。
对于我到目前为止在网上找到的所有内容,如何在同一位置arr1[i] = arr2[i]
,arr1[i1] = arr2[i1]
等处迭代两个或多个数组。这是我的代码,但由于我不明原因,它不起作用。
答案 0 :(得分:1)
String path = Environment.DIRECTORY_DOCUMENTS.toString()+"/Route Tracker";
File rootDir = new File(path);
File fileList[] = rootDir.listFiles();
String theNamesOfFiles[] = new String[fileList.length];
您正在丢失数组 BasicDBObject addEightHour = new BasicDBObject("$add", Arrays.asList( "$ts", 8*1000*60*60 ));
final BasicDBObject day = new BasicDBObject("$dateToString", new BasicDBObject("format", "\"%Y%m%d\"").append("date", addEightHour));
DBObject groupFields = new BasicDBObject("_id", new BasicDBObject(
"value", day));
DBObject group = new BasicDBObject("$group", groupFields);
和 i = 0;
i1 = 0;
的长度。然后,您可以访问绑定的数组索引,调用未定义的行为。(在s
)。
正确的方法是
s1
此处不需要使用全局变量。你自己犯了修改全局变量的错误。随着时间的推移,使用太多全局变量的大型代码会降低其可维护性和可读性。
知道如何在函数中传递参数。并且还要查看squeeze
之类的函数,这些函数在您的情况下用于输入。
检查这两个资源。这些对你有很大的帮助