Tìm vị trí kí tự xuất hiện đầu tiên trong chuỗi

Yêu cầu:

  • Viết hàm tìm vị trí kí tự xuất hiện đầu tiên trong chuỗi. Nếu không tìm thấy trả về -1.

Thuật toán:
– Dùng vòng lặp duyệt chuỗi và so sanh kí tự của chuỗi và kí tự nhập vào
– Nếu bằng nhau, trả về chỉ số mảng kí tự
– Nếu hết vòng lặp không tìm thấy, return -1

/******************Get position of character***************
* When          Who         What
* 03/05/2016    vncoding    create
***********************************************************/
#include <conio.h>
#include <stdio.h>

int getPosStr(const char* s, char c);

void main()
{
    char s[] = "vncoding blog";
    char c = 'b';
    printf("\'%c\' at index = %d", c, getPosStr(s, c));
    getch();
}


/**************************************
Function : getPosStr()
Parameter: [IN] s: string
           [IN] c: characeter
Return   : index where c occurs
***************************************/
int getPosStr(const char* s, char c)
{
    int idx = 0;
    while(*(s + idx))
    {
        if (*(s + idx) == c)
        {
            return idx;
        }
        idx++;
    }
    return -1;
}

Ngoài ra, chúng ta có thể dùng duyệt mảng kí tự thay vì dùng con trỏ

int getPosStr(const char* s, char c)
{
    int idx;
    for (idx = 0; s[idx] != NULL; idx++)
    {
        if (s[idx] == c)
        {
            return idx;
        }
    }
    return -1;
}

Kết quả:

Tìm vị trí kí tự xuất hiện trong chuỗi
Tìm vị trí kí tự xuất hiện trong chuỗi

Be the first to comment

Leave a Reply