Как вставить символы в Dart String?

C – добавление символа в строку –

У меня есть одна проблема.

#include <iostream>

using namespace std;

int main(){
    string word;
    cout << "Enter word: ";
    cin >> word;
    int i = 0;
    do {
        if (word.at(i) == 'a') {
            word.at(i)  = 'r';
        }
        i  ;
    } while(i < word.size());
    cout << word << endl; 
    return 0;
}

Все, что я хочу сделать, это если input, например: racket, вывод должен быть rarcket. Другими словами, каждый раз, когда находится символ 'a', программа должна добавить к нему символ 'r'.

Я думаю, что программа получает значение кода ASCII каждой буквы, а затем выполняет операцию сложения. Это дает мне какое-то странное письмо.

Лучший ответ

Ошибка преобразования данных xdto: текст xml содержит недопустимый символ

Файловые протоколы обмена (TXT, XML, DBF), FTPУниверсальные функцииv81cv8.cfРоссияАбонемент ($m)

После полученного интереса к публикации https://tvoyvk.ru/public/601635/ о одном из способов формирования изображений в 1С я решил продолжить изучать другие возможности “рисования” в 1С. Естественно, самым простым форматом после svg будет старый добрый растр в bmp. Но когда приступил к написанию – понял, что формировать картинку с “0”, наверное, будет нечестно по отношению к читателю, и для начала нужно разобрать, что такое bmp как формат, как его читать и, главное, показать примеры работы с новыми механизмами платформы.

Читайте также  Как по фото найти человека ВКонтакте

1 стартмани

12.04.2022   
11142   
kot-stas   
11    

Ошибка: недопустимый символ в имени в (1)

Вопрос:

Я пытаюсь скомпилировать файл fortran вместе с некоторыми файлами .h в FORTRAN. Файлы .h содержат определение для общих блоков переменной. Когда я компилирую их в Fortran, я получаю следующую ошибку:

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma,
1
Error: Invalid character in name at (1)

Код, где возникает эта ошибка,

Теперь мой вопрос: имеет ли это “1”, где ошибка?

Строки кода, на которые указывают эти ошибки,

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma,
&     kw,kz,kgluon,kh1,kh2,kh3,khc,ksnue,kse1,kse2,ksnumu,ksmu1,
&     ksmu2,ksnutau,kstau1,kstau2,ksu1,ksu2,ksd1,ksd2,ksc1,ksc2,
&     kss1,kss2,kst1,kst2,ksb1,ksb2,kn1,kn2,kn3,kn4,kcha1,kcha2,
&     kgluin,kgold0,kgoldc

Кроме того, есть ли что-то неправильное в том, как используется продолжение. Я использую gfortran для компиляции этого файла.

Лучший ответ:

Похоже, вы используете продолжения строки стиля Fortran 77 и пытаетесь скомпилировать код форматированного текста в формате Fortran 90. Вам нужно либо скомпилировать с помощью параметра gfortran -ffixed-form, либо форматировать код, используя продолжения строки стиля Fortran 90:

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma, &
          kw,kz,kgluon,kh1,kh2,kh3,khc,ksnue,kse1,kse2,ksnumu,ksmu1, &
          ksmu2,ksnutau,kstau1,kstau2,ksu1,ksu2,ksd1,ksd2,ksc1,ksc2, &
          kss1,kss2,kst1,kst2,ksb1,ksb2,kn1,kn2,kn3,kn4,kcha1,kcha2, &
          kgluin,kgold0,kgoldc 

Ответ №1

У меня возникла эта проблема при изменении scipy и попытке ее скомпилировать. Для его работы понадобилась следующая идентификация: звезда * в столбце 5. Она работает для стилей Fortran 77 и 90.

      double precision a,abseps,abserr,alist,area,area1,area12,area2,
* a1,a2,b,blist,b1,b2,correc,dabs,defabs,defab1,defab2,d1mach,
* dmax1,dres,elist,epmach,epsabs,epsrel,erlarg,erlast,errbnd,
* errmax,error1,error2,erro12,errsum,ertest,f,oflow,resabs,
* reseps,result,res3la,rlist,rlist2,small,uflow,areav

Ответ №2

К вашему первому вопросу, да, “1” обычно обозначает точку в коде, где происходит ошибка. Код как таковой выглядит в порядке.

Читайте также  Как проверить наличие подписки на определённое сообщество людей, поставивших лайки под постом ВК? | Сервис поиска аудитории ВКонтакте

Ответ №3

Подход № 1

String toSpaceSeparatedString(String s) {
var start = 0;
final strings = <String>[];
while (start < s.length) {
final end = start   4;
strings.add(s.substring(start, end));
start = end;
}
return s.join(' ');
}

Подход № 2 (менее эффективный)

String toSpaceSeparatedString(String s) {
const n = 4;
assert(s.length % n == 0);
var i = s.length - n;
while (i > 0) {
s = s.replaceRange(i, i, ' ');
i -= n;
}
return s;
}

Подход №2 менее эффективен (он должен многократно вставляться в String и, следовательно, требует многократного копирования одних и тех же частей String) и более неудобен (он повторяется от конца String до начала, чтобы индексы были стабильными), и имеет больше угловых случаев (для простоты я предполагаю, что входная строка делится равномерно на длину подстроки).

Тем не менее, я String.replaceRange его сюда, потому что он демонстрирует использование String.replaceRange, который обычно может быть полезен для вставки одной String в другую, и который, вероятно, будет проще для одноразовых случаев.

Понравилась статья? Поделиться с друзьями:
ТВОЙ ВК
Добавить комментарий

Adblock
detector