我试图修改if循环中的计数器,因为一个数组索引号需要与另一个对应,以便我改变它的文本的位置,但是字符串之间的空格将1添加到柜台。
{
//The return type is Class
Class c1 = m.getReturnType();
//The return type is object
Object object2 = resultSet.getObject(i);
}
这是其中一次尝试,但它无限循环,我尝试了不同的方法,如:
for(int i = 0, n = strlen(p); i < n; i++){
if(isspace(p[i])){
c1 = x[i-1];
printf("%c", p[i]);
}
if(isalpha(p[i])){
c1 = x[i];
c2 = c1-96;
printf("%c --- %c ---%d\n",p[i],c1, c2);
}
我甚至试图看看我是不是在&#39;反击真的改变了,所以我做了:
if(isspace(p[i))){
printf("%c", p[i]);
i -= 1;
}
这真的表明它向后退了一次,但是一旦我做了j = i;它翻转到无限循环。
答案 0 :(得分:2)
问题是i
为一个空格递减,但随后在循环结束时递增,指向相同的空格。所以它无限重复。
编辑:
// Off the top of my head, and untested,
// but you should be able to get the idea.
char* textString = "Test Test";
int sourceLen = strlen( textString );
for ( int srcIndex = 0, int destIndex = 0; srcIndex <= sourceLen ; srcIndex++ )
{
if ( textString[ srcIndex ] != ' ' )
{
textString[ destIndex ] = textString[ srcIndex ]; // copies null terminator, too
destIndex++;
}
}
答案 1 :(得分:0)
您可以尝试使用while循环:
while(i < n ){
if(isspace(p[i])){
c1 = x[i-1];
printf("%c", p[i]);
}
if(isalpha(p[i])){
c1 = x[i];
c2 = c1-96;
printf("%c --- %c ---%d\n",p[i],c1, c2);
}
}
如果你想增加它,只需添加到i
答案 2 :(得分:0)
在循环内增加i
之后,它将再次由for
构造递增。您可以更改停止条件:
for(int i = 0, n = strlen(p); i >= n; i++) {
这样,如果i
在上一次迭代中增加了多个,那么循环仍将终止。
这是因为
for (CMD_1; COND; CMD_2) CMD_4
相当于
CMD_1
if (COND) {
CMD_4
CMD_2
}