指针变量的应用-学习心得

交换发倒序输出字符串:
从两头向中间,两两互换。

要实现从两头向中间,两两互换字符串的功能,可以使用C语言编写一个函数来实现。以下是一个示例代码,展示了如何实现这一功能:

//仅供参考
#include <iostream>
#include <string>
using namespace std;

void reverseString(string &str) {
    int n = str.length();
    for (int i = 0; i < n / 2; i++) {
        swap(str[i], str[n - i - 1]);
    }
}

int main() {
    string str;
    cout << "请输入一个字符串: ";
    cin >> str;
    
    reverseString(str);
    
    cout << "倒序输出字符串: " << str << endl;
    
    return 0;
}

代码解释:

reverseString函数

这个函数接受一个字符串引用作为参数,并对其进行原地反转。通过从两头向中间遍历字符串,两两交换字符,直到中间位置。

main函数


在主函数中,首先获取用户输入的字符串,然后调用reverseString函数进行反转,最后输出反转后的字符串。

这是我第一次编的程序

#include<cstdio> 
#include<cstring>
using namespace std;

void swapp(char &a,char &b)
{
	char t;
	t=a;
	a=b;
	b=t;
}

void work(char* str)
{
	int len=strlen(str)
	for(int i=0;i<len/2;++i)
	swapp(str[i],str[len-i-1]);
}

int main()
{
	char s[110];
	char *str=s;
	get(s);
	
	work(str);
	printf("%s",s):
	return 0;
} 

但是有报错。 

报错原因
  1. 缺少分号
    • 在代码中,int len=strlen(str) 这一行缺少分号。根据,缺少分号会导致语法错误。因此,需要在 strlen(str) 后面添加分号。
   int len=strlen(str);
  • get 函数未声明
    • 在 main 函数中,get(s) 这一行报错,提示 get 未声明。根据,这可能是由于缺少必要的头文件或函数未定义。通常情况下,get 函数在C++中并不存在,可能是想使用 std::cin 或 scanf 来读取输入。
   scanf("%s", s);
  • printf 语法错误
    • 在 main 函数中,printf("%s",s): 这一行报错,提示期望逗号。根据,这可能是由于缺少逗号或分号。正确的语法应该是 printf("%s", s);
   printf("%s", s);
  • for 循环语法错误
    • 在 work 函数中,for 循环语法错误。根据,可能是由于循环条件或变量命名问题。检查发现 for 循环语法正确,但之前缺少的分号可能导致编译器无法正确解析。

综合以上分析,修正后的代码如下:

#include<cstdio> 
#include<cstring>
using namespace std;

void swapp(char &a, char &b) {
    char t;
    t = a;
    a = b;
    b = t;
}

void work(char* str) {
    int len = strlen(str);
    for(int i = 0; i < len / 2; ++i) {
        swapp(str[i], str[len - i - 1]);
    }
}

int main() {
    char s[110];
    char *str = s;
    scanf("%s", s);
    work(str);
    printf("%s", s);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值