以下是一个不使用字符串库和使用指针的方法来交换字符串中的单词的示例代码:
#include
// 函数用于交换两个字符数组的内容
void swap(char *str1, char *str2) {
char temp[100];
int i;
// 将str1的内容复制到temp数组中
for (i = 0; str1[i] != '\0'; i++) {
temp[i] = str1[i];
}
temp[i] = '\0';
// 将str2的内容复制到str1中
for (i = 0; str2[i] != '\0'; i++) {
str1[i] = str2[i];
}
str1[i] = '\0';
// 将temp数组中的内容复制到str2中
for (i = 0; temp[i] != '\0'; i++) {
str2[i] = temp[i];
}
str2[i] = '\0';
}
// 函数用于交换字符串中的单词
void reverseWords(char *str) {
char *start = str;
char *end = str;
// 定位到字符串结束位置
while (*end) {
end++;
}
end--;
// 交换整个字符串的内容
swap(start, end);
start = str;
end = str;
// 交换每个单词的内容
while (*end) {
if (*end == ' ') {
swap(start, end - 1);
start = end + 1;
}
end++;
}
// 交换最后一个单词的内容
swap(start, end - 1);
}
int main() {
char str[100];
printf("请输入字符串: ");
fgets(str, sizeof(str), stdin);
reverseWords(str);
printf("交换后的字符串: %s\n", str);
return 0;
}
这段代码中,swap
函数用于交换两个字符数组的内容,reverseWords
函数用于交换字符串中的单词。在reverseWords
函数中,首先使用swap
函数交换整个字符串的内容,然后使用swap
函数交换每个单词的内容。最后,通过调用reverseWords
函数来交换输入字符串中的单词,并打印交换后的字符串。
下一篇:不使用字符串引用图像资源。