【发布时间】:2021-09-22 08:50:23
【问题描述】:
我正在尝试在不使用 strtok() 的情况下标记字符串。
当我运行字符串的字符时,它将在每一行中打印。
例如,当我跑步时:
printfTokens("Hello from other side!");
输出应该是:
Hello
from
other
side!
由于我刚刚学习 C,我在如何实现这个程序上被困了好几个小时。到目前为止,我只知道基础知识并玩弄不(仍然没有学习任何calloc、malloc 等)。
到目前为止,我有这段代码,但输出没有打印任何内容。
#include <stdio.h>
#include <string.h>
#define MAX_WORD 100
void printfTokens(char *inputString) {
int i;
/*int inputStringLength;
for(i = 0; inputString[i] != '/0'; i++) {
inputStringLength++;
}*/
while(inputString[i] != '\0') {
char testing[MAX_WORD];
while(inputString[i] != ' ') {
testing[inputString[i]]++;
i++;
}
printf("%s", testing);
i++;
}
}
int main() {
printfTokens("TESTING ONE! TWO! THREE!");
return 0;
}
【问题讨论】:
-
想想
testing[inputString[i]]++;行的作用。是你想要的吗? -
我想将每个字符一个一个地添加,所以我想我需要更改为 testing[inputString[i]++]?还是有点混乱..
-
++是做什么的? inputString[i] 有什么作用?测试[某事]有什么作用?
-
我使用 ++ 来添加单词中的每个字符,而 inputString[i] 是字符串中的每个字符。我创建了测试字符数组来添加每个数组字符。
-
++ 没有“在单词中添加字符”之类的操作。你知道 ++ 是做什么的吗?它有什么作用?