如何在c中正确解析字符串

时间:2014-05-07 04:02:47

标签: c arrays string

所以我有这个功能:

char *lookUpPageTable(char **array, int VPN)
   {
   if (array[VPN][0] == '1')
      {
      /*char **pageNumber = (char **)malloc(sizeof(char*)* 128);
        for (int i = 0; i < strlen(array); i++)
           {
           pageNumber[i] = array[VPN][i];
           }*/

      return array[VPN]; //this returns the whole number which I dont want
      }
   else
      {
      return "Page Fault";
      }
   }

我作为参数传入的数组包含1 123456形式的数字列表,其中第一个数字是1或0,第二个数字是随机数。此函数检查阵列中索引VPN处的第一个数字。如果它为零,则应返回“Page Fault”字符串。如果是1,那么函数应该返回1之后的数字。

例如,如果我调用了lookUpPageTable(array,index)

该方法应该看看array [index] [0] =='1'

如果确实如此,则返回数组[index]

中的剩余数字

否则

返回“页面错误”

1 个答案:

答案 0 :(得分:1)

array[VPN]VPN的第array个元素,恰好是指向字符串"1 123456"的指针。例如,如果您返回array[VPN] + 1,它将是指向字符串" 123456"的指针。

因此,您可以返回array[VPN] + 2,并根据需要获得指向字符串"123456"的指针。

但请注意,我依赖于您保证字符串的内容确实是“1 123456”的形式,我建议您的代码也应该验证字符串是否真的是那种形式。