문자 배열로 C에서 문자열로 작업하고 있는데 for 루프에 값을 동적으로 전달할 수 있도록 노력하고 있습니다. C 루프가 작동하지 않습니까?
다음 코드 작품
, 문제 :for (int i = -strlen(fragments[2]) + 1; i < 11; i++) {
int test = OverlapStrength(fragments[1], fragments[2], i, 0);
printf("%d\n", test);
}
을하지만, 어떤 이유로,이 코드는 아무 것도 인쇄되지 않습니다 : 사실
for (int i = -6; i < 11; i++) {
int test = OverlapStrength(fragments[1], fragments[2], i, 0);
printf("%d\n", test);
}
,이 코드도 작동하지 않습니다
for (int i = -strlen(fragments[2]) + 1; i < strlen(fragments[1]); i++) {
int test = OverlapStrength(fragments[1], fragments[2], i, 0);
printf("%d\n", test);
}
나는 -strlen(fragments[2]) + 1
과 strlen(fragments[1])
의 값을 th 바로 전에 확인했습니다. e 루프가되어 각각 -6과 11을 체크 아웃합니다. 분명히 루프는 그 값을 직접 장소에 넣을 때 작동하지만, 두 번째 것은 strlen
계산으로 대체하면 끊어지며 왜 저의 삶에 대한 이유인지 알 수 없습니다. 도움? 내가 그들을 변경할 수 있도록
편집
OverlapStrength는 상수로의 인수를, 그래서 내가 가서 내가 조각을 변경 아니에요 확신 해요. 다음은 메소드 선언의 : 조각의
int OverlapStrength(const char one[], const char two[], int startOne, int startTwo)
내용은 중요하지 않을해야하지만, 그들은 단순히 내가 중복 조각에서 다시 함께 조각 시도하고 문자열입니다. 나는 이미 내 파편들이 모두 제대로 나오고 있는지, 그리고이 루프를 선언하지 않은 상태에서 길이가 제대로 계산되었는지 확인했다.
가''나 strlen (조각 [1])'의 값을 변경 OverlapStrength' 않습니다에
strlen
캐스팅 할 수 있습니까? –OverlapStrength의 인수는 정수로 선언되므로 특별히 변경할 수 없습니다. 해당 코드를 표시하기 위해 원래 게시물을 편집하십시오. – Chiubaka