✅作者简介:大家好我是:嵌入式基地,是一名嵌入式工程师,希望一起努力,一起进步!
📃个人主页:嵌入式基地
🔥系列专栏:C语言刷题专栏
描述
输入描述
输出描述
示例
输入:
helloworld
输出:
10
解析
代码实现
#include
using namespace std;
int main() {
char str[100] = { 0 };
cin.getline(str, sizeof(str));
int len=0;
char *p=str;
//只要指针没有指向换行符位置
while(*p!='\0'){
//长度加1,指针p后移
len++;
p++;
}
cout<<len<<endl;
return 0;
}
描述
输入描述
输出描述
示例
输入:
helloworld
6
输出:
world
解析
题目所给的代码中,输入的字符串是一个字符数组,采用getline函数输入,这样会在输入的末尾增加一个’\0’表示字符串的结束,如果长度小于数组长度,输入所有字符后加’\0’,如果长度大于数组长度,截断输入的前面部分再在最后加’\0’。
我们准备一个新串来保存复制后的字符串,因为原串大小不会超过30,因此新串的大小也不会超过30.
题目要求使用指针,我们可以用两个指针,指针p一开始指向原串的第m个位置,指针q一开始指向新串的起始位置。然后利用指针p遍历原串,到末尾的’\0’结束,遍历过程中像指针q指向的地址复制指针p指向元素的值,然后指针同步后移。
代码实现
#include
using namespace std;
int main() {
char str[30] = { 0 };
cin.getline(str, sizeof(str));
int m;
cin >> m;
// write your code here......
char copystr[30] = { 0 };
char* p = str + m - 1; //指向字符数组第m个元素
char* q = copystr;
while(*p != '\0'){ //直到字符串结果
*q = *p; //复制
p++;; //两边指针都后移
q++;
}
cout << copystr << endl;
return 0;
}
描述
输入描述
输出描述
示例
输入:
2
3
输出:
3 2
代码实现
using namespace std;
// write your code here......
void swap(int *p, int *q);
void swapp(int &a, int &b);
int main() {
int m, n;
cin >> m;
cin >> n;
// write your code here......
// swap(m,n); // 指针变量
swapp(m,n); //引用变量
cout << m << " " << n << endl;
return 0;
}
void swap(int *p, int *q)
{
int temp = *p;
*p = *q;
*q = temp;
}
void swapp(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
描述
输入描述
输出描述
示例
输入:
10
20
30
40
50
60
输出:
10 20 30 40 50 60
解析
代码实现
#include
using namespace std;
int main() {
int arr[6] = { 0 };
int* ptr = arr;
int len = sizeof(arr) / sizeof(int);
for (int i = 0; i < len; i++) {
cin >> arr[i];
}
for (ptr ; ptr < arr + len ; ptr++)
{
cout << *ptr<< " ";
}
return 0;
}
描述
输入描述
输出描述
示例
输入:
5
2 8 1 9 5
输出:
25
代码实现
#include
using namespace std;
int cal(int *array,int n){
int *p = array;
int sum=0;
for(int i=0;i<n;i++){
sum+=*p;
p++;
}
return sum;
}
int main(){
int n=0;
cin>>n;
int array[n];
for(int i=0;i<n;i++){
cin>>array[i];
}
cout<<cal(array,n);
return 0;
}
描述
输入描述
输出描述
示例
输入:
5
2 9 8 1 3
输出:
1 2 3 8 9
代码实现
#include
void sort (int*arr,int n) //冒泡排序
{
int i,j=0;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(arr[j]>arr[j+1])
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
}
int main()
{
int n,i=0;
scanf("%d",&n);
int arr[100]={0};
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
sort(arr,n);
return 0;
}