两列字符串中间有不定量空格如何用strstr读取第二列字符串
时间: 2023-03-27 17:01:17 浏览: 52
可以使用以下代码来读取第二列字符串:
```
char str1[] = "hello world";
char str2[] = " world";
char *ptr = strstr(str1, str2);
if (ptr != NULL) {
printf("第二列字符串为:%s\n", ptr);
} else {
printf("未找到第二列字符串\n");
}
```
其中,str1为第一列字符串,str2为第二列字符串,ptr为指向第二列字符串的指针。使用strstr函数可以在第一列字符串中查找第二列字符串,如果找到了,则返回指向第二列字符串的指针,否则返回NULL。
相关问题
怎么用strstr读取第二个空格后的字符串
可以使用以下代码来读取第二个空格后的字符串:
char str[] = "这是一个示例字符串";
char *p = strstr(strstr(str, " ") + 1, " ") + 1;
printf("%s", p);
这段代码首先使用strstr函数找到第一个空格的位置,然后再加1找到第二个空格的位置,最后再加1就是第二个空格后的字符串了。
文件内容隔有不定量的空格,如何跳文件内容隔有不定量的空格,如何用fgets,strstr读取文件并跳过前两行并输出前三列的字符串过前两行并输出前三列的字符串
可以使用fgets函数读取文件内容,然后使用strstr函数查找空格的位置,再使用字符串截取函数(如strtok)截取前三列的字符串。具体代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("打开文件失败\n");
return ;
}
char line[1024];
int line_count = ;
while (fgets(line, sizeof(line), fp)) {
line_count++;
if (line_count <= 2) {
continue; // 跳过前两行
}
char *p = line;
int column_count = ;
while (*p != '\') {
if (*p == ' ') {
column_count++;
if (column_count == 3) {
*p = '\'; // 截取前三列的字符串
break;
}
}
p++;
}
printf("%s\n", line);
}
fclose(fp);
return ;
}
```
其中,line数组用于存储每行读取到的字符串,line_count用于记录当前读取到的行数,column_count用于记录当前读取到的列数。在读取每行字符串时,如果当前行数小于等于2,则跳过该行;否则,使用指针p遍历该行字符串,查找空格的位置,当找到第三个空格时,将该位置的字符设置为'\',即截取前三列的字符串。最后,输出截取后的字符串即可。