c中的空格分开

时间:2012-10-29 20:19:45

标签: html c post cgi

我正在做一个cgi。我在html中使用POST方法,我从C中的stdin收到一个字符串。我想获取我用post方法上传的文件的内容。所以我必须在Content-Type之后达到STDIN的一部分:(某事)(内容)。问题是我无法找到如何拆分空白区域的方法。

有什么想法吗?

 //---post functions---
    lenstr=getenv("CONTENT_LENGTH");
     if(lenstr == NULL || sscanf(lenstr,"%ld",&len)!=1 || len > 1048576)
    {
          printf("<P>Error in invocation - wrong FORM probably.");
        }    
     else{
     fread(input, len+1,1, stdin);
     strtok(input,":");
     strtok(NULL,":");
     strtok(NULL,"/");
     //strtok(NULL," ");
    input_p3=strtok(NULL,"");   
     len_p=strlen(input)-strlen("Content-Disposition");
     len_p3=strlen(input_p3);
     strcpy(paper->paper_file_name,input_p3);
             for(u=0;u<len_p3-len_p-2;u++){
                printf("%c",paper->paper_file_name[u]);
            }

如果我取消注释我所拥有的strtok,它就不起作用了。但是这样它打印例如txt文件“plain(content)”和plain来自text / plain

2 个答案:

答案 0 :(得分:2)

使用strtok函数并使用" "作为分隔符。对函数的连续调用将返回指向字符串中下一个标记的指针,因此第一次调用给出“Content-type:”,然后接下来的两个调用将为您提供所需的内容。

答案 1 :(得分:0)

http://www.cplusplus.com/reference/clibrary/cstring/strtok/

但要小心,因为strtok有一个全局来指示当前的令牌索引,所以考虑将它包装在关键部分。