我有一个描述该函数的字符串,我需要检查这是否是函数 这个想法来找我把字符串数组然后检查
the string: "1 11.1 2 3.2 3 44.1 4 5.4 5 7.4 6 1111.0"
字符串描述函数(1,11.1),(2,3.2)(3,44.1)等......
我尝试将其插入数组,如arr [0] [0] = 1和arr [1] [0] = 11.1,arr [0] [1] = 2,arr [1] [1] = 3.2 ... 我需要帮助如何做或获得建议另一个想法如何检查如果字符串是功能?我希望我解释自己更好..谢谢
以示例字符串:
"1 11.1 1 3.2 3 44.1 4 5.4 5 7.4 6 1111.0"
不是描述函数,因为我们有(1,11.1)和(1,3.2) 问题是如何将字符串插入数组
为清晰起见编辑:
他提出了以下问题:给定一串(显然)均匀的许多花车,让我们用以下形式表示:
"x1 y1 x2 y2 x3 y3 ... xn yn"
如果xi
和xj
处的值i
与j
不同,那么字符串“定义一个函数” {1}}相同,则xi
和xj
的值相同。
他想知道如何检查字符串是否“定义了一个函数。”
答案 0 :(得分:2)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
{//split string by strtok, destroy input by strtok
char input[] = "1 11.1 2 3.2 3 44.1 4 5.4 5 7.4 6 1111.0";
char *array[10][2];
char *item;
char **to = &array[0][0];
int i, count=0;
for(item = strtok(input, " "); item != NULL; item = strtok(NULL, " ")){
*to++ = item;
++count;
}
for(i = 0;i<count / 2;++i){
printf("%s, %s\n", array[i][0], array[i][1]);
}
}
printf("\n");
{//convert double by strtod
char *input = "1 11.1 1 3.2 3 44.1 4 5.4 5 7.4 6 1111.0";
double array[10][2];
double item;
double *to = &array[0][0];
char *p;
int i, count=0, pairSize;
for(p = input; *p != '\0';){
item = strtod(p, &p);
if(*p == ' ' || *p == '\0'){
*to++ = item;
++count;
} else {
printf("invalid number\n");
break;
}
}
pairSize = count / 2;
for(i = 0;i<pairSize;++i){
printf("%g, %g\n", array[i][0], array[i][1]);
}
//Check the monotonic increase
for(i = 0;i+1<pairSize;++i){
if(array[i][0] >= array[i+1][0]){
printf("invalid sequence at array[%d][0] = %g and array[%d][0] = %g\n",
i, array[i][0], i+1, array[i+1][0]);
}
}
}
return 0;
}