나는 2 개의 끈이있다;C - 2 문자열의 색인을 비교하는 방법은 무엇입니까?
string1[20] = "ab cd efgf"; string2[20] = "mn go jpfgt";
장소 (인덱스) 문자열이 에 인쇄 후 나타나는 문자열 1에서 첫 글자를 찾아야하고, 문자열 필요 각에서 편지는 편지하지 번호 또는 공간
를 찾을 수 예를 들어:. 2 명
나는 2 개의 끈이있다;C - 2 문자열의 색인을 비교하는 방법은 무엇입니까?
string1[20] = "ab cd efgf"; string2[20] = "mn go jpfgt";
장소 (인덱스) 문자열이 에 인쇄 후 나타나는 문자열 1에서 첫 글자를 찾아야하고, 문자열 필요 각에서 편지는 편지하지 번호 또는 공간
를 찾을 수 예를 들어:. 2 명
우리 초보자가 서로 도움이 문자열의 장소 9 문자열 1 위 8 F 문자, :) 여기 내 세 센트 :
012.C의 시작 색인은 0부터 시작합니다.
그래서
여기
문자열 2 위 8 문자열 1 위 7의 편지 f는,하는 시범 프로그램입니다 말을 제대로 할 것이다.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int find_letter(const char *s1, const char *s2, size_t *i1, size_t *i2)
{
int success = *s1 && *s2;
if (success)
{
const char *p1 = s1;
const char *p2;
do
{
success = isalpha((unsigned char)*p1) &&
(p2 = strchr(s2, *p1)) != NULL;
} while (!success && *++p1);
if (success)
{
*i1 = p1 - s1;
*i2 = p2 - s2;
}
}
return success;
}
int main(void)
{
char string1[] = "ab cd efgf";
char string2[] = "mn go jpfgt";
size_t i1;
size_t i2;
if (find_letter(string1, string2, &i1, &i2))
{
printf("%c at position %zu in the first string "
"and at position %zu in the second string\n",
string1[i1], i1, i2);
}
return 0;
}
프로그램 출력
f at position 7 in the first string and at position 8 in the second string
이 발생하면 s1 또는 s2가 NULL이면 어떻게됩니까? 이 외에도, 노력에 축하. – linuxfan
@linuxfan 정의되지 않은 동작입니다. 표준 C 문자열 함수와 마찬가지로 유효한 포인터를 전달하는 것은 함수 클라이언트의 작업입니다. –
독립적이 해결의 시도인가? find()에서 – dasblinkenlight