函數查找由s指向的字符串中ch的最後出現次數。它返回一個指向字符的指針,或者如果字符串中不存在ch,則返回一個空指針。我試圖編寫函數而不使用字符串庫函數。使用指針(C語言)查找字符串中最後一次出現的字符
這就是我到目前爲止,它似乎對我來說,但我似乎無法得到結果字符串。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>
char *strrchr2(char *s, char ch);
int main()
{
char str1[100];
char char1;
char result_str[100];
printf("\nEnter a string: ");
gets(str1);
fflush(stdin);
printf("Enter the target char in the string: ");
scanf("%c", &char1);
char * result_str = strrchr2(str1, char1);
printf("Resultant string = %s", result_str);
char * strrchr2(char *s, char ch)
{
int count = 0, offset = 0;
while (*(s + count) != '\0')
{
if (*(s + count) == ch)
offset = count;
count++;
}
return *(s + offset);
}
預期輸出:
Enter a string: abcdefdfdfghh
Enter the target char in the string: f
Resultant string: fghh
您聲明瞭'result_str'兩次!! –
你的編譯器應該在'return *(s + offset);'行發出一個錯誤。因爲'不能從'char'轉換爲'char *'' –
'fflush(stdin)'是未定義的行爲。 'fflush(stdout)'很好,儘管 –