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ả:
1 |
'b' at index = 7 |
Leave a Reply