用sscanf输出字符串中的整数

img


这样只能输出123,我想所有整数都输出,且输出一共有多少个,应该怎么办

这个需要循环了

#include <stdio.h>

int main() {
   char str[] = "123aaaasw 42 d 5641w";
   int arr[3];
   int i = 0;
   char *ptr = str;

   while (*ptr) {
      int n;
      if (sscanf(ptr, "%d", &n) == 1) { // 如果能夠讀取到整數
         arr[i++] = n;
         if (i == 3) break; // 如果接收到三個整數就退出
         ptr += sprintf(ptr, "%d", n); // 更新指針位置
      } else {
         ptr++; // 如果沒有讀取到整數就繼續繼續查找
      }
   }

   // 輸出結果
   printf("arr={%d,%d,%d}", arr[0], arr[1], arr[2]);

   return 0;
}