Hi, I am

Ngô Tôn

I am a programmer.

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

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

Code:
/******************Get position of character***************/
#include <conio.h>
#include <stdio.h>

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

void main()
{
char s[] = "ngoton 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ả:

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 Code: Ngoài ra, chúng ta có thể dùng duyệt mảng kí tự thay vì dùng con trỏ Kết quả: [crayon-5d13bc197c139782843011/]

User Rating: 5 ( 1 votes)

About ngoton

Ngô Tôn is a programmer with passion for tailored software solutions. Comes with 6+ years of IT experience, to execute beautiful front-end experiences with secure and robust back-end solutions.

Check Also

Xây dựng hàm bạn để tính diện tích hình chữ nhật

Yêu cầu: Xây dựng hàm bạn để tính diện tích hình chữ nhật Code: Giải …

Leave a Reply

Your email address will not be published. Required fields are marked *