= '-';或是什么= '/'意思strchr(我知道它确实定位了工作和strrchr最后一次出现的情况)?
这段代码确实创建了两个文件。
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fpA = fopen("output_A.txt", "w");
FILE *fpB = fopen("output_B.txt", "w");
char *strA = ",-/";
char temp[100];
char str[5][60] = { { "summer is coming!" },
{ "vacation will let you chill out" },
{ "and, have a nice time" },
{ "and, stay fit" },
{ "and, wish you the best" }, };
fprintf(fpA, "%s\n", str[0]);
fprintf(fpB, "%s\n", str[1]);
fclose(fpA);
fclose(fpB);
fpA = fopen("output_A.txt", "r");
fpB = fopen("output_B.txt", "w");
*(strchr(str[2], ' ')) = '-';
*(strrchr(str[2], ' ') + 1) = '/';
strtok(str[2], strA);
strcpy(temp, strtok(NULL, strA));
str[1][8] = '\n';
str[1][9] = '\0';
strncat(temp, str[1], strlen(str[1]));
if (strcmp(str[3], str[4]))
strcat(temp, str[3]);
else
strcat(temp, str[4]);
fprintf(fpA, "%s", temp);
fprintf(fpB, "%s", temp);
fclose(fpA);
fclose(fpB);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
声明
*(strchr(str[2], ' ')) = '-';
*(strrchr(str[2], ' ') + 1) = '/';
Run Code Online (Sandbox Code Playgroud)
基本上替换'-'为第一个空格出现,以及'/'最后一个空格出现旁边的字符。
第一个替换:
strchr返回指向所搜索字符第一次出现的指针 ( ' ')*运算符访问该指针'-'第二次替换:
strrchr返回指向所搜索字符最后一次出现的指针 ( ' ')*运算符访问指针'/'原本的字符串str[2],"and, have a nice time"将被改为"and,-have a nice /ime"。
警告:您需要检查strchr并返回值,因为如果找不到搜索的字符,strrchr它们可能会返回(检查一下)。
如果是这种情况,取消引用指针将导致未定义的行为(可能是现代计算机上的分段错误),从而使程序崩溃。NULL