C语言题:将s串中所有字符前移一个位置,第一个字符移到最后。谢谢帮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言题:将s串中所有字符前移一个位置,第一个字符移到最后。谢谢帮相关的知识,希望对你有一定的参考价值。

C语言题:将s串中所有字符前移一个位置,第一个字符移到最后。谢谢帮忙解答的各位

将s串中所有字符前移一个位置,第一个字符移到最后:

intlen=strlen(s);

charc=s[len-1];

s[len-1]=s[0];

s[0]=c;

扩展资料

字符串中字母顺序前移,其他字符顺序后移。

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

char*fun(char*s)

inti,j,k,n;

char*p,*t;

n=strlen(s)+1;

t=(char*)malloc(n*sizeof(char));

p=(char*)malloc(n*sizeof(char));

j=0;

k=0;

for(i=0;i<n;i++)

if(((s[i]>='A')&&(s[i]<='Z'))||((s[i]>='a')&&(s[i]<='z')))

t[j]=s[i];

j++;

else

p[k]=s[i];

k++;

for(i=0;i<k;i++)

t[j+i]=p[i];

t[j+k]=0;

returnt;

intmain()

chars[80];

printf("Pleaseinput:");

gets(s);

printf("\\nTheresultis:%s\\n",s);

printf("\\nTheresultis:%s\\n",fun(s));

getchar();

getchar();

return0;

参考技术A char *func(char *s)

    char c;
    char *p = s;
    c=*p++;
    while(*p) 
    
        *(p-1) = *p;
        p++;
    
    *(p-1) = c;
    return s;

参考技术B int len = strlen(s);
char c = s[len - 1];
for (i = 0; i < len - 2; ++ i)

    s[i] = s[i + 1];

s[len - 1] = c;

算法题-第K个小子串

第K小子串

输入一个字符串 s,s 由小写英文字母组成,保证 s 长度小于等于 5000 并且大于等于 1。在 s 的所有不同的子串中,输出字典序第 k 小的字符串。

字符串中任意个连续的字符组成的子序列称为该字符串的子串。

字母序表示英文单词在字典中的先后顺序,即先比较第一个字母,若第一个字母相同,则比较第二个字母的字典序,依次类推,则可比较出该字符串的字典序大小。

输入:

第一行输出一个字符串 s,保证 s 长度小于等于 5000 大于等于 1。
第二行一个整数 k (1<= k <= 5),保证 s 不同子串个数大于等于 k。

输出:

输出一个字符串表示答案。

这道题数据量不大,直接暴力枚举,利用set本身的有序性

#include <iostream>
#include <set>


using namespace std;


int main() 
    string str;
    cin >> str;
    int k;
    cin >> k;
    set<string> s;
    for (int i = 0; i < str.size(); i++) 
        for (int j = i; j < str.size(); j++) 
            if (j - i + 1 > k) 
                break;
            
            string t = str.substr(i, j - i + 1);
//            cout << t << endl;
            s.insert(t);
            if (s.size() > k) 
                s.erase(--s.end());
            
        
    
    cout << *(--s.end()) << endl;

以上是关于C语言题:将s串中所有字符前移一个位置,第一个字符移到最后。谢谢帮的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题六十三之请编写函数fun:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

C语言试题六十三之请编写函数fun:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

C的string.h里有没有字符串替换函数

C语言如何删除文本的最后一个字符

C语言试题六十一之请编写函数fun:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。

C语言试题六十一之请编写函数fun:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。