字符串截取-求助c语言中strtok的用法,关于指针的问题

问题描述

求助c语言中strtok的用法,关于指针的问题

写了一个分割字符串的方法,放在循环体调用出了点问题。请达人指点
inline code

void readraw(char *sentence){
    raw_t *raw = malloc(sizeof(raw) *20);
    char *q = malloc(1024);
    const char *delim = "n";
    char *p = strtok(sentence, delim);
    while (p) {

        printf("%sn",p);
        //printf("%sn", p);
        p = strtok(NULL, delim);
    }
    free(q);
    free(p);
    free(raw);

}
int main(int argc, char *argv[argc]) {
    for (int i=0; i<200; i++) {
        char sentence[100] = "我n爱n你n中n国CN";
        readraw(sentence);
    }
    return 0;
}

output:



国CN




国CN
346210221 //这里会有乱码



国CN




国CN
......

时间: 2025-01-31 01:37:07

字符串截取-求助c语言中strtok的用法,关于指针的问题的相关文章

编程-求助C语言中的return问题

问题描述 求助C语言中的return问题 麻烦大家解释一下return在不同返回值下的含义是什么?比如return 0: return -1: return 1: return :(哈有这个测试用例:int ret = 0,if(传过来的地址为NULL) return ret).希望大家能帮我详细地讲一下return的具体含义及其用法,谢谢大家! 解决方案 return的使用方法有两种: 1.return -- 例如return 1; 例如return res[1]; 例如return "hel

c语言-新手求助 C语言中bmp图像的大小问题

问题描述 新手求助 C语言中bmp图像的大小问题 bmp图像中为什么bfOffBits+biSizeImage(或biHeight*biWidth)不等于bfSize? 解决方案 可以用图片编辑器修改图片大小 解决方案二: height*width*4

php语言中switch的用法

  php语言中switch的用法介绍: $czc="reg"; switch($czc){ case 'reg'://注册 echo "注册的代码"; break;//如果注释掉此句,将执行下在的代码,否则终止 case 'logout'://退出 echo "退出的代码"; break; default://此代码 除了reg,logout外其它的都是执行以下面的代码 include 'user/info.php'; break; } /*此

Go语言中Select语句用法实例_Golang

本文实例讲述了Go语言中Select语句用法.分享给大家供大家参考.具体分析如下: select 语句使得一个 goroutine 在多个通讯操作上等待. select 会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支.当多个都准备好的时候,会随机选择一个. 复制代码 代码如下: package main import "fmt" func fibonacci(c, quit chan int) {         x, y := 1, 1         for {

Go语言中的switch用法实例分析_Golang

本文实例讲述了Go语言中的switch用法.分享给大家供大家参考.具体分析如下: 这里你可能已经猜到 switch 可能的形式了. case 体会自动终止,除非用 fallthrough 语句作为结尾. 复制代码 代码如下: package main import (  "fmt"  "runtime" ) func main() {  fmt.Print("Go runs on ")  switch os := runtime.GOOS; os

Go语言中的range用法实例分析_Golang

本文实例讲述了Go语言中的range用法.分享给大家供大家参考.具体如下: for 循环的 range 格式可以对 slice 或者 map 进行迭代循环. 复制代码 代码如下: package main import "fmt" var pow = []int{1, 2, 4, 8, 16, 32, 64, 128} func main() {     for i, v := range pow {         fmt.Printf("2**%d = %d\n"

Go语言中slice的用法实例分析_Golang

本文实例讲述了Go语言中slice的用法.分享给大家供大家参考.具体如下: slice 指向数组的值,并且同时包含了长度信息. []T 是一个元素类型为 T 的 slice. 复制代码 代码如下: package main import "fmt" func main() {  p := []int{2, 3, 5, 7, 11, 13}  fmt.Println("p ==", p)  for i := 0; i < len(p); i++ {   fmt.

go语言中if语句用法实例_Golang

本文实例讲述了go语言中if语句用法.分享给大家供大家参考.具体分析如下: if 语句看起来跟 C 或者 Java 中的一样,除了没有了 ( ) 之外(甚至强制不能使用它们),而 { } 是必须的. 复制代码 代码如下: package main import (     "fmt"     "math" ) func sqrt(x float64) string {     if x < 0 {         return sqrt(-x) + "

c语言-C语言中A文件定义的文件指针,如何才能在B文件中也可以写入信息

问题描述 C语言中A文件定义的文件指针,如何才能在B文件中也可以写入信息 image.c和rtp.c都不是主函数,在image.c中定义了一个文件指针,但我想把rtp.c中的信息写入这个文件.简单就是在A文件中定义了一个指针文件,想把B文件中的信息写入指针文件.你可能问我为什么不直在B文件中定义,因为也要写入A文件中信息,像我之前写的运行时会提示rtp.c中的文件指针是未定义的标识符. 应该怎么写才是正确,麻烦知道的人给点指导,谢谢 解决方案 通过extern在rtp.c中声明该文件指针为外部指